以下是Docker 的常见命令分类整理,涵盖容器管理、镜像操作、网络配置、数据卷使用等核心场景,适合开发者快速查阅:


一、容器生命周期管理

1. 容器运行与启动
# 运行新容器(前台模式)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  # 常用选项:
  -d          # 后台运行(守护态)
  --name      # 指定容器名称
  -p          # 端口映射(主机端口:容器端口)
  -v          # 数据卷挂载(主机路径:容器路径)
  --rm        # 容器退出后自动删除
  -e          # 设置环境变量
  --network   # 指定网络(如bridge、host)
  -it         # 交互模式(-i保持输入,-t分配终端)

# 示例:运行Nginx容器,映射80端口,命名为web-server
docker run -d --name web-server -p 80:80 nginx
2. 容器启动/停止/重启
docker start [CONTAINER_ID/NAME]   # 启动已停止的容器
docker stop [CONTAINER_ID/NAME]    # 停止运行中的容器(默认等待10秒)
docker restart [CONTAINER_ID/NAME] # 重启容器
docker pause [CONTAINER_ID/NAME]   # 暂停容器(冻结进程)
docker unpause [CONTAINER_ID/NAME] # 恢复暂停的容器
3. 进入容器交互
# 进入运行中的容器(退出后容器继续运行)
docker exec -it [CONTAINER_ID/NAME] /bin/bash

# 示例:进入名为web-server的容器
docker exec -it web-server /bin/bash
4. 查看容器状态
docker ps                  # 查看运行中的容器
docker ps -a               # 查看所有容器(包括已停止的)
docker logs [CONTAINER_ID/NAME]  # 查看容器日志
docker top [CONTAINER_ID/NAME]   # 查看容器内进程
5. 删除容器
docker rm [CONTAINER_ID/NAME]      # 删除已停止的容器
docker rm -f [CONTAINER_ID/NAME]   # 强制删除运行中的容器
docker container prune             # 删除所有已停止的容器

二、镜像管理

1. 镜像搜索与拉取
docker search [IMAGE_NAME]  # 搜索Docker Hub上的镜像
docker pull [IMAGE_NAME:TAG]  # 拉取镜像(默认latest标签)

# 示例:拉取Ubuntu 22.04镜像
docker pull ubuntu:22.04
2. 镜像列表与删除
docker images               # 查看本地镜像列表
docker rmi [IMAGE_ID/NAME]  # 删除镜像
docker image prune         # 删除悬空镜像(未被任何容器引用的中间层)
3. 构建自定义镜像
# 通过Dockerfile构建镜像
docker build -t [IMAGE_NAME:TAG] [CONTEXT_PATH]
  # 常用选项:
  -t          # 指定镜像名称和标签
  --no-cache  # 禁用缓存,强制重新构建

# 示例:构建名为my-app的镜像,标签为v1
docker build -t my-app:v1 .

4. 镜像标签与推送

docker tag [SOURCE_IMAGE:TAG] [TARGET_IMAGE:TAG]  # 添加标签
docker push [IMAGE_NAME:TAG]                      # 推送镜像到仓库

# 示例:将本地镜像推送到Docker Hub
docker tag my-app:v1 username/my-app:v1
docker push username/my-app:v1

三、网络管理

1. 网络创建与查看
docker network create [NETWORK_NAME]  # 创建自定义网络
docker network ls                    # 查看所有网络
docker network inspect [NETWORK_NAME] # 查看网络详情
2. 容器网络连接
# 将容器连接到指定网络
docker network connect [NETWORK_NAME] [CONTAINER_ID/NAME]

# 断开容器网络连接
docker network disconnect [NETWORK_NAME] [CONTAINER_ID/NAME]
3. 端口映射与暴露
# 运行容器时映射端口(示例:将主机8080端口映射到容器80端口)
docker run -p 8080:80 nginx

# 查看容器端口映射
docker port [CONTAINER_ID/NAME]

四、数据管理

1. 数据卷(Volume)
# 创建数据卷
docker volume create [VOLUME_NAME]

# 查看数据卷列表
docker volume ls

# 运行容器时挂载数据卷
docker run -v [VOLUME_NAME]:[CONTAINER_PATH] [IMAGE_NAME]

# 示例:挂载名为my-vol的卷到容器的/data目录
docker run -v my-vol:/data alpine
2. 绑定挂载(Bind Mount)
# 将主机目录挂载到容器(示例:挂载当前目录到容器的/app)
docker run -v $(pwd):/app [IMAGE_NAME]

五、系统资源管理

1. 资源限制
# 限制容器内存和CPU使用
docker run --memory="512m" --cpus="1.5" [IMAGE_NAME]

# 示例:限制容器最多使用512MB内存和1.5个CPU核心
docker run -d --name resource-test --memory="512m" --cpus="1.5" nginx
2. 查看资源使用
docker stats [CONTAINER_ID/NAME]  # 实时显示容器资源使用情况

六、实用工具命令

docker version              # 查看Docker版本信息
docker info                 # 显示系统级信息(如引擎版本、存储驱动)
docker system df            # 查看磁盘使用情况
docker system prune         # 清理所有未使用的资源(镜像、容器、网络)

七、Docker Compose 常用命令

docker-compose up -d       # 启动所有服务(后台模式)
docker-compose down        # 停止并删除所有容器
docker-compose ps          # 查看服务状态
docker-compose logs [SERVICE_NAME]  # 查看指定服务日志

八、常见问题排查

  1. 端口冲突:检查主机端口是否被占用(netstat -tuln | grep :80)。
  2. 镜像拉取失败:确认镜像名称和标签正确,或尝试更换国内镜像源(如阿里云、腾讯云)。
  3. 容器无法访问:检查安全组/防火墙规则,或确认网络模式(bridge/host)。
  4. 数据卷权限问题:使用-v /host/path:/container/path:ro设置只读挂载。

通过掌握这些命令,可以高效完成 Docker 的日常操作。建议结合 docker --help 或官方文档深入学习高级用法(如 Swarm 集群、Dockerfile 优化等)。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐