Docker 命令速查手册:从镜像、容器到常用组合(建议收藏)

本文整理 Docker 常用命令,包括基本语法、全局选项、镜像管理、容器管理、网络与数据卷、系统信息、常用组合命令和新手避坑。

适合人群:Docker 新手、后端开发、运维、云原生入门。

关键词:Docker、容器、镜像、命令速查、运维。

一、Docker 命令基本语法

Docker 命令的基本格式:

bash

docker [OPTIONS] COMMAND [ARG...]

一般来说,Docker 命令可以用来管理 daemon,或者通过 CLI 管理镜像和容器。

旧版写法支持:

bash

docker-COMMAND

例如:

bash

docker-ps
docker-images

现代 Docker 更推荐统一写成:

bash

docker ps
docker images

也就是:

bash

docker COMMAND

二、Docker 全局选项与旧版守护进程选项

1. 现代常用全局选项

选项说明
-D, --debug开启调试模式,默认 false
-H, --host指定 daemon socket,例如 unix:///var/run/docker.socktcp://host:port
--config指定客户端配置目录
--log-level设置日志级别
--tls启用 TLS
--tlscacert指定 CA 证书
--tlscert指定客户端证书
--tlskey指定客户端私钥
--tlsverify启用 TLS 并校验远端
-v, --version输出版本信息并退出

示例:

bash

docker -v
docker --version
docker -H tcp://127.0.0.1:2375 ps

2. 旧版/守护进程相关选项

下面这些选项常见于旧版 Docker 或 dockerd 守护进程配置中,了解即可。现代 Docker 中很多已经变化,不建议直接照搬。

选项说明备注
-d=true/false使用 daemon 模式现代通常直接使用 dockerd
--api-enable-cors=true/false远端 API 启用 CORS 头旧版选项
-b=""将容器挂载到已存在网桥指定 none 可禁用容器网络
--bip=""让动态创建的 docker0 使用给定 CIDR 地址-b 互斥
--dns=""指定 Docker 使用的 DNS 服务器
-g=""指定 Docker 运行时 root 路径旧版,现代常用 --data-root
--icc=true/false启用容器间通信默认 true
--ip=""绑定端口时默认 IP默认 0.0.0.0
--iptables=true/false是否添加 iptables 规则默认 true
--mtu=VALUE指定容器网络 MTU默认 1500
-p=""指定 daemon PID 文件路径注意:不是端口映射
-s=""强制使用给定存储驱动旧版,现代常用 --storage-driver
--selinux-enabled=true/false启用 SELinux 支持默认 false

注意:docker run -d 里的 -d 表示后台运行;旧版全局选项里的 -d 表示 daemon 模式,二者不要混淆。


三、Docker 镜像管理命令

命令作用常用示例
docker build从 Dockerfile 创建镜像docker build -t myapp:1.0 .
docker images列出本地镜像docker images
docker pull从仓库拉取镜像docker pull nginx:latest
docker push推送镜像到仓库docker push username/myapp:1.0
docker rmi删除镜像docker rmi nginx:latest
docker tag给镜像打标签docker tag myapp:1.0 username/myapp:1.0
docker history查看镜像历史docker history nginx
docker save保存镜像为 tar 包docker save -o nginx.tar nginx:latest
docker load从 tar 包加载镜像docker load -i nginx.tar
docker import从 tar 包或目录导入创建镜像docker import container.tar myimage:1.0
docker search搜索镜像docker search nginx
docker login登录 Docker 仓库docker login
docker logout登出 Docker 仓库docker logout
docker commit从容器修改中创建新镜像docker commit mycontainer myimage:1.0

常用示例:

bash

# 构建镜像
docker build -t myapp:1.0 .
查看镜像
docker images
拉取镜像
docker pull nginx:latest
打标签
docker tag myapp:1.0 username/myapp:1.0
推送镜像
docker push username/myapp:1.0
保存镜像
docker save -o myapp.tar myapp:1.0
加载镜像
docker load -i myapp.tar

四、Docker 容器管理命令

命令作用常用示例
docker run创建新容器并运行命令docker run -d --name nginx -p 80:80 nginx
docker create创建容器但不启动docker create --name nginx nginx
docker start启动容器docker start nginx
docker stop停止运行中的容器docker stop nginx
docker restart重启容器docker restart nginx
docker kill强制关闭容器docker kill nginx
docker rm删除容器docker rm nginx
docker pause暂停容器内所有进程docker pause nginx
docker unpause恢复容器内所有进程docker unpause nginx
docker wait阻塞直到容器终止,并输出退出码docker wait nginx
docker ps列出容器docker ps -a
docker top查看容器内进程docker top nginx
docker attach依附到正在运行的容器docker attach nginx
docker exec在运行中的容器内执行命令docker exec -it nginx bash
docker logs查看容器日志docker logs -f nginx
docker port查看端口映射docker port nginx
docker cp容器与宿主机之间复制文件docker cp nginx:/etc/nginx/nginx.conf ./
docker diff检查容器文件系统修改docker diff nginx
docker inspect查看容器底层信息docker inspect nginx
docker events获取服务端实时事件docker events
docker export导出容器内容为 tar 包docker export nginx > nginx.tar

常用示例:

bash

# 启动一个 Nginx 容器
docker run -d --name nginx -p 80:80 nginx
查看所有容器
docker ps -a
进入容器
docker exec -it nginx bash
查看日志
docker logs -f nginx
停止并删除容器
docker stop nginx
docker rm nginx
从容器复制文件到宿主机
docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf
查看容器详情
docker inspect nginx

推荐:进入容器优先使用 docker exec -it 容器名 bash,不要优先使用 docker attach。因为 attach 退出时可能导致容器停止。


五、Docker 网络与数据卷命令

这部分是现代 Docker 非常常用的内容,建议掌握。

1. 网络管理

命令作用
docker network ls列出网络
docker network create创建网络
docker network inspect查看网络详情
docker network rm删除网络
docker network connect将容器连接到网络
docker network disconnect将容器从网络断开

示例:

bash

docker network create mynet
docker network ls
docker run -d --name nginx --network mynet nginx
docker network inspect mynet

2. 数据卷管理

命令作用
docker volume ls列出数据卷
docker volume create创建数据卷
docker volume inspect查看数据卷详情
docker volume rm删除数据卷
docker volume prune清理未使用数据卷

示例:

bash

docker volume create mydata
docker run -d --name nginx -v mydata:/usr/share/nginx/html nginx
docker volume ls
docker volume inspect mydata

六、Docker 系统信息与清理命令

命令作用
docker info显示系统相关信息
docker version输出 Docker 版本信息
docker stats查看容器资源使用情况
docker system df查看磁盘使用情况
docker system prune清理未使用资源
docker system prune -a清理所有未使用镜像、容器、网络等

示例:

bash

docker info
docker version
docker stats
docker system df
docker system prune -a

警告:docker system prune -a 会删除大量未使用资源,生产环境慎用。


七、常用组合命令

1. 启动一个 Nginx

bash

docker run -d \
  --name nginx \
  -p 80:80 \
  -v nginx_html:/usr/share/nginx/html \
  nginx:latest

2. 进入容器

bash

docker exec -it nginx bash

如果容器没有 bash,可以尝试:

bash

docker exec -it nginx sh

3. 查看日志

bash

docker logs -f nginx

4. 复制文件

bash

docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf
docker cp ./index.html nginx:/usr/share/nginx/html/index.html

5. 构建并推送镜像

bash

docker build -t myapp:1.0 .
docker tag myapp:1.0 username/myapp:1.0
docker push username/myapp:1.0

6. 保存与加载镜像

bash

docker save -o myapp.tar myapp:1.0
docker load -i myapp.tar

7. 导出与导入容器

bash

docker export nginx > nginx.tar
docker import nginx.tar nginx-import:1.0

save/load 面向镜像,export/import 面向容器,不要混淆。


八、一张表总结 Docker 常用命令

分类命令
镜像buildimagespullpushrmitaghistorysaveloadimportsearchloginlogoutcommit
容器runcreatestartstoprestartkillrmpauseunpausewaitpstopattachexeclogsportcpdiffinspecteventsexport
网络network lsnetwork createnetwork inspectnetwork rmnetwork connectnetwork disconnect
数据卷volume lsvolume createvolume inspectvolume rmvolume prune
系统infoversionstatssystem dfsystem prune

九、新手避坑指南

  1. docker rundocker start 不一样
    docker run 会创建新容器;docker start 只是启动已存在容器。

  2. docker rmdocker rmi 不一样
    docker rm 删除容器;docker rmi 删除镜像。

  3. 删除镜像前先删除依赖它的容器
    否则可能提示镜像正在被使用。

  4. docker execdocker attach 更适合日常进入容器
    exec 会新开一个终端,退出一般不会影响容器。

  5. -p 是端口映射,格式是宿主机端口:容器端口
    例如 -p 8080:80 表示宿主机 8080 映射到容器 80。

  6. -v 是挂载数据卷或目录
    例如 -v /host/data:/container/data

  7. docker system prune -a 不要随便在生产环境执行
    它会清理大量未使用资源。

  8. 需要持久化的数据不要只放在容器里
    容器删除后数据可能丢失,建议使用 volume 或 bind mount。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值