Docker是一个用于创建、部署和管理容器的开源平台。在使用Docker时,有效地管理和监控容器是非常重要的,其中查看和解析Docker命令(command)是基本且关键的一步。本文将介绍一些关于Docker的命令。
基础命令
Docker命令的格式
1
   | docker <command>[options] [arguments]
   | 
 
Docker基础命令
1 2 3 4
   | docker version            docker info               docker stats              docker  [command] --help       
   | 
 
镜像相关命令
查看本地镜像 images
1 2 3 4 5 6 7 8 9 10 11 12 13
   | docker images     -a, --all                  -q, --quiet           
  [root@localhost ~] REPOSITORY   TAG       IMAGE ID           CREATED        SIZE centos              7         8652b9f0cb4c   2 months ago   204MB
      REPOSITORY  镜像仓库源     TAG         标签(版本)     IMAGE ID    镜像ID     CREATED     创建时间     SIZE        大小
   | 
 
搜索镜像 search
1 2 3 4
   | docker search [镜像名]     --filter=STARS=3000                             docker search centos                             docker search --filter=STARS=3000 centos        
   | 
 
下载镜像 pull
1 2 3 4 5
   | docker pull [镜像名]:[版本号]       -a, --all-tags                 docker pull nginx                     docker pull nginx:1.14.0             docker pull -a nginx                
   | 
 
删除镜像 rmi
1 2 3 4 5 6
   | 删除镜像 rmi docker rmi [镜像名或者镜像id]     -f                                        docker rmi -f 镜像id                         docker rmi -f 镜像id    镜像id 镜像id 镜像id   docker rmi -f $(docker images -aq)         
   | 
 
推送镜像
容器相关命令
启动容器 rmi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   | 启动容器 run docker run [镜像名] -d                                             -i                                             -P                                             -p                                                 -p ip:主机端口:容器端口     -p 主机端口:容器端口     -p 容器端口 -t                                             --name="nginx-lb"                             --dns 8.8.8.8                                 --dns-search example.com                    	 -h "hostname"                                 -e username="ritchie"                         --env-file=[]                                 --cpuset="0-2" or --cpuset="0,1,2"             -m                                              --net="bridge"                                  --link=[]                                     --expose=[]                                  --volume , -v                                  docker run -it centos /bin/bash                docker run -it -v 主机目录:容器内目录           
   | 
 
查看容器信息 ps
1 2 3 4 5 6
   | docker ps [CONTAINER ID or CONTAINER NAME] -a                         -n=?                     -q                         docker ps                 docker ps -n=3          
   | 
 
退出容器 exit
1 2 3
   | 退出容器 exit exit             Ctrl + P + Q    
   | 
 
删除容器 rm
1 2 3 4
   | docker rm 容器id                           docker rm --f 容器id                      docker rm -f $(docker ps -qa)             docker ps -q -a|xargs docker rm         
   | 
 
启动和停止容器的操作
1 2 3 4 5
   | 启动和停止容器的操作 docker start 容器id         docker restart 容器id       docker stop 容器id          docker kill 容器id         
   | 
 
查看容器日志 logs
1 2 3 4 5 6
   | docker logs -f -t --tail 10 8e633673e3c2          -f                 						     --since         						     -t                 						     --tail             						 docker logs -tf --tail 10 8e633673e3c2
   | 
 
查看容器中的进程信息 top
查看镜像的元数据 inspect
1 2 3 4 5 6 7 8 9 10 11
   | docker inspect [容器id]     -f             
 
  [root@layman ~] 172.31.38.16
 
  [root@layman ~] [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin REDIS_VERSION=5.0.9 REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-5.0.9.tar.gz REDIS_DOWNLOAD_SHA=53d0ae164cd33 536c3d4b720ae9a128ea6166ebf04ff1add3b85f1242090cb85]
   | 
 
进入容器 exec attach
1 2
   | docker exec -it 容器id /bin/bash         docker attach 容器id                    
   | 
 
其他相关命令
docker run 与 docker start区别
1 2 3
   | docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可; docker run相当于执行两步操作:将镜像放入容器(docker create),然后将容器启动,变成运行时容器(docker start); docker start的作用是,重新启动已存在的镜像。
   | 
 
Docker run的基本流程

挂载卷 -v
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
   | docker volume ls                       -v 容器内路径                            -v 卷名:容器内路径                        -v /宿主机路径:容器内路径                docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx      docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx     
 
  构建 build docker build -f /home/docker-test-volume/dockerfile1 -t layman/dockerfile . -f      -t     
  查看docker网络 network
  docker network ls                             docker network inspect [NETWORK ID]         docker network rm [NETWORK ID]            
  docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet --driver bridge                自定义网络模式,使用桥接 --subnet 192.168.0.0/16        设置子网地址 --gateway 192.168.0.1        设置出口网关 mynet                        自己定义的一个网络名字
  docker network inspect mynet
  加入网络 connect docker network connect mynet tomcat01
 
   | 
 
构建 build
1 2 3
   | docker build -f /home/docker-test-volume/dockerfile1 -t layman/dockerfile . -f      -t     
   | 
 
查看docker网络 network
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
   |  docker network ls                             docker network inspect [NETWORK ID]         docker network rm [NETWORK ID]            
  docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet --driver bridge                自定义网络模式,使用桥接 --subnet 192.168.0.0/16        设置子网地址 --gateway 192.168.0.1        设置出口网关 mynet                        自己定义的一个网络名字
  docker network inspect mynet
 
  docker network connect mynet tomcat01
 
  |