Docker常用命令总结

一、docker安装使用

1、docker安装启动

(1)更新yum源

yum update 更新本地源

yum install epel-release -y   linux衍生第三方软件源

yum clean all

yum list 查看软件库

(2)安装docker

安装:yum install docker-io -y

启动:systemctl start docker

查看:docker info

停止:systemctl stop docker

重启:systemctl restart docker

(3)修改镜像仓库地址

vim /etc/docker/daemon.json

{
"debug":true,"experimental":true,
"registry-mirrors":["https://pb5bklzr.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}

修改后需要重启docker:systemctl restart docker

查看仓库地址是否生效:docker info

(4)测试是否成功

docker run --rm --name nginx-xdclass -p 8080:80 -d nginx

--rm:容器终止运行后,自动删除容器文件。
--name nginx-xdclass:容器的名字叫做nginx-xdclass,名字自己定义.
-p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
-d:容器启动后,在后台运行

(5)公共镜像仓库地址,可以查找需要的镜像直接使用

https://hub.docker.com/

 

 

一、运行容器

docker run -p 8080:80 manager8082:v1 端口
-d 后台运行
--name Mysql 运行容器别名
-v $PWD/conf 挂在目录下文件到docker
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
例:docker run -d -p 8080:80 --name Nginx -v ~/nginx/www:/usr/share/nginx/html f949e7d76d63
 
二、常用指令
docker load --input apachedoris-build-env-1.2.image 加载docker镜像
sudo docker pull ubuntu:16.04 添加docker镜像
docker rm <容器名 or ID> 删除容器
docker rmi 镜像 删除镜像
docker search nginx 查找镜像
docker ps -a 查看所有容器列表
Ctrl+P+Q 退出守护式容器,后台运行
docker attach ubuntu 重新进入守护式容器
docker port web 查看端口转发情况
docker kill 026e 停止一个正在运行的容器
docker restart 026e 重启一个正在运行的容器
docker start 026e 启动一个已停止的容器
docker logs -f <容器名 or ID> 查看容器日志
docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端
sudo service docker start 启动docker
sudo chkconfig docker on 开机启动docker服务
docker start 3cb492a27475 启动镜像,然后才可以下一步进入系统
/etc/init.d/ssh status 查看ssh状态[]
/etc/init.d/ssh start 启动ssh
docker exec -it 3cb492a27475 /bin/bash docker启动后再次进入系统(根据dockerId)
docker run -p 8082:8080 manager8082:v1 新新新docker启动一个镜像容器
docker run -p 3306:3306 -it ubuntu /bin/bash 运行个端口转发的容器
docker run -p 80 --name web -it ubuntu /bin/bash 运行个端口转发的容器,并指定名字
docker run -d -p 127.0.0.1:33301:22 centos6-ssh 后台运行容器
docker cp ./jdk1.8.0_161 9ff55cd68387:/opt/ 复制文件夹或文件从linux到docker
docker cp 96f7f14e99ab:/www /tmp/ 容器文件拷到主机
docker exec -ti -u root 7509371edd48 bash 以root权限运行这个docker容器安装solr时候遇到的
docker commit -m "Java Base Image" 9ff55cd68387 ubuntu16.04:java 把当前容器制作成镜像
docker logs -f containerid 查看容器启动日志
 
 
三、使用流程
【1】拉取docker的tomcat镜像
  docker pull docker.io/tomcat
  docker images
【2】启动docker镜像
  基本启动:docker run -p 8080:8080 docker.io/tomcat
  挂载本地目录方式启动:docker run -d -v /usr/docker_file/NginxDemo.war:/usr/local/tomcat/webapps/NginxDemo.war -p 8080:8080 docker.io/tomcat
  文件方式启动:创建文件Dockerfile

  from docker.io/tomcat:latest #你的 tomcat的镜像
  MAINTAINER XXX@qq.com #作者
  COPY NginxDemo.war /usr/local/tomcat/webapps #放置到tomcat的webapps目录下

  文件方式构建镜像:docker build -t manager8082:v1 . 

  启动:docker run -p 8082:8080 manager8082:v1

【3】退出docker容器后再次进入
  docker  exec -it   3cb492a27475   /bin/bash 
【4】复制文件到docker容器
  docker cp NginxDemo.war 3cb492a27475 :/usr/local/tomcat/webapps
【5】查看已经启动的镜像
  docker ps
 
四、镜像上传阿里云镜像仓库

网址:https://cr.console.aliyun.com
登录:docker login --username=121997@qq.com registry.cn-beijing.aliyuncs.com
打tag:docker tag 52428399bd74 registry.cn-beijing.aliyuncs.com/robots2/bigdata:doris-be0.9
上传:docker push registry.cn-beijing.aliyuncs.com/robots2/bigdata:doris-be0.9
拉取:sudo docker pull registry.cn-beijing.aliyuncs.com/robots2/bigdata:doris-be0.9

 
五、添加docker用户组(linux下添加后不用加sudu即可执行)

sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用

 

posted @ 2021-07-27 14:06  Robots2  阅读(263)  评论(0)    收藏  举报