为了帮助大家更好地掌握 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