为了帮助大家更好地掌握 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 |
进入容器命令行 |
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 MyOverlayNetworkdocker network create -d bridge MyBridgeNetworkdocker 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