Docker 常用指令完全指南,按镜像管理、容器生命周期、网络、数据卷等场景分类整理,附英文原词注释和缩写速查表。适合开发者查阅和记忆。
一、镜像管理(Image)
镜像是 Docker 的“安装包”,是一切容器运行的基础。
| 指令 | 完整英文 | 说明 | 示例 |
|---|---|---|---|
docker images | – | 列出本地所有镜像 | docker images |
docker pull | – | 从仓库拉取镜像 | docker pull nginx:latest |
docker push | – | 推送镜像到仓库 | docker push myrepo/nginx:v1 |
docker rmi | remove image | 删除镜像 | docker rmi nginx |
docker build | – | 通过 Dockerfile 构建镜像 | docker build -t myapp . |
docker tag | tag(标签) | 给镜像打标签 | docker tag nginx mynginx:v1 |
docker save | – | 导出镜像为 tar 文件 | docker save -o nginx.tar nginx |
docker load | – | 从 tar 文件导入镜像 | docker load -i nginx.tar |
docker history | – | 查看镜像构建历史 | docker history nginx |
docker inspect | inspect(检查) | 查看镜像详细信息 | docker inspect nginx |
常用组合
bash
# 删除所有未使用的镜像
docker image prune
# 删除所有镜像(慎用)
docker rmi $(docker images -q) # -q = quiet,只输出ID
# 查看镜像占用空间
docker system df
二、容器生命周期(Container)
容器是镜像运行起来的实例,相当于“正在运行的程序”。
2.1 创建与运行
| 指令 | 完整英文 | 说明 | 示例 |
|---|---|---|---|
docker run | – | 创建并启动容器 | docker run nginx |
docker create | – | 只创建不启动 | docker create --name mynginx nginx |
docker start | – | 启动已停止的容器 | docker start mynginx |
docker stop | – | 优雅停止容器 | docker stop mynginx |
docker restart | – | 重启容器 | docker restart mynginx |
docker kill | – | 强制终止容器 | docker kill mynginx |
docker pause | – | 暂停容器 | docker pause mynginx |
docker unpause | – | 恢复暂停的容器 | docker unpause mynginx |
docker rm | remove | 删除容器 | docker rm mynginx |
docker rename | – | 重命名容器 | docker rename old new |
2.2 常用选项(docker run 的搭配)
| 选项 | 完整英文 | 说明 |
|---|---|---|
-d | detach | 后台运行 |
-it | interactive + tty | 交互式运行(可输入命令) |
--name | – | 给容器指定名称 |
--rm | remove | 容器退出后自动删除 |
-p | publish | 端口映射(宿主机:容器) |
-v | volume | 挂载数据卷 |
-e | environment | 设置环境变量 |
-w | workdir | 设置工作目录 |
-u | user | 指定运行用户 |
-m | memory | 内存限制 |
--restart | – | 重启策略 |
2.3 实用示例
# 后台运行 Nginx,映射端口,命名容器
docker run -d --name web -p 80:80 nginx
# 交互式进入 Ubuntu 容器
docker run -it --name myubuntu ubuntu bash
# 一次性任务:运行后自动删除
docker run --rm -it alpine echo "Hello"
# 挂载当前目录到容器内
docker run -v $(pwd):/app -w /app node node app.js
三、容器操作与调试
| 指令 | 完整英文 | 说明 | 示例 |
|---|---|---|---|
docker ps | process status | 列出运行中的容器 | docker ps |
docker ps -a | all | 列出所有容器(含停止) | docker ps -a |
docker exec | execute | 在容器内执行命令 | docker exec -it web bash |
docker logs | – | 查看容器日志 | docker logs -f web |
docker top | – | 查看容器内进程 | docker top web |
docker stats | statistics | 实时查看资源占用 | docker stats web |
docker attach | attach(附着) | 附着到容器主进程 | docker attach web |
docker cp | copy | 容器与宿主机间复制文件 | docker cp web:/app/log.txt . |
docker diff | difference | 查看容器文件变化 | docker diff web |
docker wait | – | 等待容器停止并返回码 | docker wait web |
docker port | – | 查看端口映射 | docker port web |
常用组合
# 进入容器内部(最常用)
docker exec -it 容器名 /bin/bash # 或 /bin/sh
# 持续跟踪日志
docker logs -f --tail 100 web # -f = follow, --tail = 显示最后100行
# 批量停止/删除所有容器
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
# 一键清理:删除所有停止的容器
docker container prune
四、网络管理(Network)
| 指令 | 说明 | 示例 |
|---|---|---|
docker network ls | 列出所有网络 | docker network ls |
docker network create | 创建网络 | docker network create mynet |
docker network inspect | 查看网络详情 | docker network inspect mynet |
docker network connect | 将容器连接到网络 | docker network connect mynet web |
docker network disconnect | 断开容器网络 | docker network disconnect mynet web |
docker network rm | 删除网络 | docker network rm mynet |
docker network prune | 删除未使用的网络 | docker network prune |
常用网络驱动
| 驱动 | 说明 |
|---|---|
bridge | 默认,单机容器间通信 |
host | 使用宿主机网络 |
none | 无网络 |
overlay | 跨主机通信(Swarm 模式) |
# 创建自定义桥接网络并在其中运行容器
docker network create mynet
docker run -d –name app1 –network mynet nginx
docker run -d –name app2 –network mynet nginx
# app1 和 app2 可以通过容器名互相访问
五、数据卷管理(Volume)
| 指令 | 说明 | 示例 |
|---|---|---|
docker volume ls | 列出所有数据卷 | docker volume ls |
docker volume create | 创建数据卷 | docker volume create mydata |
docker volume inspect | 查看卷详情 | docker volume inspect mydata |
docker volume rm | 删除数据卷 | docker volume rm mydata |
docker volume prune | 删除未使用的卷 | docker volume prune |
三种挂载方式对比
| 类型 | 语法 | 说明 |
|---|---|---|
| 绑定挂载 | -v /host/path:/container/path | 挂载宿主机目录 |
| 命名卷 | -v mydata:/container/path | Docker 管理的卷 |
| 匿名卷 | -v /container/path | 自动生成随机卷名 |
# 绑定挂载:代码开发常用
docker run -v $(pwd):/app -w /app node npm start
# 命名卷:数据库持久化
docker run -v pgdata:/var/lib/postgresql/data postgres
六、系统管理
| 指令 | 完整英文 | 说明 | 示例 |
|---|---|---|---|
docker info | information | Docker 系统信息 | docker info |
docker version | – | 版本信息 | docker version |
docker system df | disk free | 磁盘使用情况 | docker system df |
docker system prune | prune(修剪) | 清理未使用的资源 | docker system prune -a |
docker events | – | 实时事件流 | docker events |
清理命令对比
| 命令 | 清理内容 |
|---|---|
docker container prune | 停止的容器 |
docker image prune | 未使用的镜像 |
docker volume prune | 未使用的卷 |
docker network prune | 未使用的网络 |
docker system prune -a | 以上全部 + 所有未使用镜像 |
七、Docker Compose
Compose 用于多容器应用编排,配置文件为 docker-compose.yml。
| 指令 | 说明 | 示例 |
|---|---|---|
docker-compose up | 启动所有服务 | docker-compose up -d |
docker-compose down | 停止并删除容器 | docker-compose down -v |
docker-compose ps | 列出服务状态 | docker-compose ps |
docker-compose logs | 查看日志 | docker-compose logs -f |
docker-compose exec | 在服务中执行命令 | docker-compose exec web bash |
docker-compose build | 重新构建镜像 | docker-compose build |
docker-compose restart | 重启服务 | docker-compose restart web |
docker-compose stop/start | 停止/启动服务 | docker-compose stop |
docker-compose pull | 拉取最新镜像 | docker-compose pull |
八、快速查阅卡片
按场景速查
| 我想… | 用这个命令 |
|---|---|
| 下载镜像 | docker pull 镜像名 |
| 查看本地镜像 | docker images |
| 删除镜像 | docker rmi 镜像名 |
| 运行容器 | docker run -d --name 名 镜像 |
| 查看运行中的容器 | docker ps |
| 查看所有容器 | docker ps -a |
| 进入容器 | docker exec -it 容器名 bash |
| 查看日志 | docker logs -f 容器名 |
| 停止容器 | docker stop 容器名 |
| 删除容器 | docker rm 容器名 |
| 端口映射 | -p 8080:80 |
| 挂载目录 | -v /host:/container |
| 后台运行 | -d |
| 清理垃圾 | docker system prune -a |
常用缩写速记表
| 缩写 | 完整单词 | 含义 |
|---|---|---|
-d | detach | 后台运行 |
-it | interactive + tty | 交互模式 |
-p | publish | 端口映射 |
-v | volume | 挂载卷 |
-e | environment | 环境变量 |
-q | quiet | 只输出ID |
-f | follow / force | 跟踪日志 / 强制 |
-a | all | 全部 |
rmi | remove image | 删镜像 |
ps | process status | 查看进程 |