为了帮助大家更好地掌握 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 bash 进入容器命令行
docker start 开启容器
docker logs 显示控制台日志
docker stop 停止容器
docker restart 重启一个容器
docker rm 移除一个容器
docker port 显示端口映射
docker top 列出容器进程
docker kill 杀死容器

参数 <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