为了帮助大家更好地掌握 Docker,整理了常用、实用的 Docker 命令,希望通过这份 Docker 命令速查表,能够帮助您在 Docker 的学习和工作中更加得心应手。

入门命令

在后台创建和运行容器

$ docker run -d -p 80:80 docker/nginx
  • -d - 以分离(后台)模式运行容器
  • -p 80:80 - 将端口 80 映射到容器中的端口 80,格式:宿主机端口:容器端口
  • docker/nginx - 要使用的镜像

在前台创建并运行容器

$ docker run -it --rm -p  8001:8080 --name my-nginx nginx
  • -it - 交互式 bash 模式
  • --rm - 容器终止运行后自动删除容器文件
  • -p 8001:8080 - 将 8001 端口映射到容器中的 8080 端口
  • --name my-nginx - 指定名称
  • nginx - 要使用的镜像

Docker常用命令

命令说明
docker ps正在运行的容器
docker ps -a所有容器
docker ps -s正在运行的容器(带CPU/内存)
docker images列出所有镜像
docker exec -it <container> bash进入容器命令行
docker start <container>开启容器
docker logs <container>显示控制台日志
docker stop <container>停止容器
docker restart <container>重启一个容器
docker rm <container>移除一个容器
docker port <container>显示端口映射
docker top <container>列出容器进程
docker kill <container>杀死容器

参数 <container> 是容器id或者容器名称

创建容器

docker create [options] IMAGE
  -a, --attach               # 附加标准输出/错误
  -i, --interactive          # 附加标准输入(交互式)
  -t, --tty                  # 伪终端 pseudo-tty
      --name NAME            # 命名你的镜像
  -p, --publish 5000:5000    # 端口映射(主机:容器)
      --expose 5432          # 向容器公开端口 
  -P, --publish-all          # 发布所有端口
      --link container:alias # 链接 linking
  -v, --volume `pwd`:/app    # mount(需要绝对路径)
  -e, --env NAME=hello       # 环境变量 env vars
docker create --name my_nginx --expose 80 nginx:3.0.2

操作镜像

命令说明
docker build -f Dockerfile -t kelen/nginx .构建镜像
docker images列出镜像
docker rmi nginx删除nginx镜像
docker save nginx > nginx.tar镜像存档
docker load < nginx.tar加载存档
docker load -i nginx.tar加载存档
docker history镜像历史
docker commit nginx  my_nginx容器存为镜像
docker tag nginx kelen/nginx标记镜像
docker push kelen/nginx推送镜像

Docker网络

创建网络

docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
  --subnet=192.168.0.0/16 \
  --subnet=192.170.0.0/16 \
  --gateway=192.168.0.100 \
  --gateway=192.170.0.100 \
  --ip-range=192.168.1.0/24 \
  --aux-address="my-router=192.168.1.5" \
  --aux-address="my-switch=192.168.1.6" \
  --aux-address="my-printer=192.170.1.5" \
  --aux-address="my-nas=192.170.1.6" \
  MyOverlayNetwork

启动连接到网络

docker run -it -d --network=MyOverlayNetwork nginx

将正在运行的容器连接到网络

docker network connect MyOverlayNetwork nginx

删除网络

docker network rm MyOverlayNetwork

列出网络

docker network ls

获取有关网络的信息

docker network inspect MyOverlayNetwork