Docker 命令是管理容器、镜像、网络和数据卷的核心工具,以下按 镜像管理容器管理网络管理数据卷管理 和 系统信息 五大核心场景分类,整理最常用的命令及说明,兼顾基础操作与实用场景。

一、镜像管理(Image)

镜像是容器的 “模板”,包含运行应用所需的代码、依赖和环境配置。常用命令围绕镜像的拉取、查看、构建、删除展开。

命令 功能说明 示例
docker pull [镜像名]:[标签] 从 Docker Hub 拉取镜像(标签默认 latest) docker pull ubuntu:22.04(拉取 Ubuntu 22.04 镜像)
docker images 查看本地所有镜像(含名称、标签、ID、大小) docker images(列出所有本地镜像)
docker rmi [镜像ID/镜像名] 删除本地镜像(需先删除依赖该镜像的容器) docker rmi ubuntu:22.04(删除指定标签的 Ubuntu 镜像)
docker build -t [镜像名]:[标签] [Dockerfile路径] 基于 Dockerfile 构建自定义镜像 docker build -t my-app:v1 .(当前目录 Dockerfile 构建镜像)
docker tag [原镜像名]:[原标签] [新镜像名]:[新标签] 为镜像添加新标签(常用于版本管理或推送到私有仓库) docker tag my-app:v1 registry.example.com/my-app:v1
docker push [镜像名]:[标签] 将本地镜像推送到远程仓库(如 Docker Hub、私有仓库) docker push my-app:v1(推送到 Docker Hub 个人仓库)
docker search [关键词] 在 Docker Hub 搜索镜像 docker search nginx(搜索 Nginx 相关镜像)

二、容器管理(Container)

容器是镜像的 “运行实例”,常用命令覆盖容器的创建、启动、停止、进入、删除等全生命周期操作。

1. 容器基础操作(创建 / 启动 / 停止)

命令 功能说明 示例

docker run [选项] [镜像名]:[标签] [命令]

基于镜像创建并启动容器(核心命令,选项常用) 见下方 “常用选项示例”
docker start [容器ID/容器名] 启动已停止的容器 docker start my-nginx(启动名为 my-nginx 的容器)

docker stop [容器ID/

容器名]

优雅停止容器(发送 SIGTERM 信号,默认等待 10s) docker stop my-nginx

docker kill [容器ID/

容器名]

强制停止容器(发送 SIGKILL 信号,立即终止) docker kill my-nginx

docker rm [容器ID/

容器名]

删除已停止的容器(加 -f 可强制删除运行中容器) docker rm my-nginx(删除停止的容器)

docker run 常用选项说明:

  • -d:后台运行容器(“守护模式”,不占用当前终端)
  • -p [主机端口]:[容器端口]:端口映射(将主机端口转发到容器端口)
  • -v [主机路径]:[容器路径]:挂载数据卷 / 目录(实现主机与容器文件共享)
  • -name [容器名]:指定容器名称(便于后续管理,默认自动生成)
  • -e [环境变量名]=[值]:设置容器内环境变量
  • -it:交互式运行(-i 保持输入流打开,-t 分配伪终端,常用于进入容器)

示例:

# 后台运行 Nginx,映射主机 8080 端口到容器 80 端口,命名为 my-nginx
docker run -d -p 8080:80 --name my-nginx nginx:latest

# 交互式进入 Ubuntu 容器(退出后容器停止)
docker run -it --name my-ubuntu ubuntu:22.04 /bin/bash

2. 容器状态与信息查看

命令 功能说明 示例
docker ps 查看 运行中 的容器(默认只显示运行中) docker ps
docker ps -a 查看 所有 容器(含运行中、已停止) docker ps -a
docker inspect [容器ID/容器名] 查看容器详细信息(IP、挂载、网络、配置等) docker inspect my-nginx(查看 Nginx 容器完整配置)
docker logs [容器ID/容器名] 查看容器日志(加 -f 可实时跟踪日志,类似 tail -f docker logs -f my-nginx(实时查看 Nginx 访问日志)
docker top [容器ID/容器名] 查看容器内运行的进程(类似主机的 top 命令) docker top my-nginx(查看 Nginx 容器内进程)

3. 容器交互与文件操作

命令 功能说明 示例
docker exec [选项] [容器ID/容器名] [命令] 在运行中的容器内执行命令(常用 -it 进入交互式终端) docker exec -it my-nginx /bin/bash(进入 Nginx 容器终端)
docker cp [主机路径] [容器ID/容器名]:[容器路径] 从主机复制文件到容器 docker cp ./index.html my-nginx:/usr/share/nginx/html/(替换 Nginx 首页)
docker cp [容器ID/容器名]:[容器路径] [主机路径] 从容器复制文件到主机 docker cp my-nginx:/var/log/nginx/access.log ./(复制 Nginx 日志到本地)

三、网络管理(Network)

Docker 网络用于容器间通信或容器与外部网络交互,默认提供 bridge(桥接)、host(主机模式)、none(无网络)三种网络模式,也支持自定义网络。

命令 功能说明 示例
docker network ls 查看本地所有 Docker 网络 docker network ls
docker network create [网络名] 创建自定义网络(默认 bridge 模式,推荐用于容器间通信) docker network create my-network(创建名为 my-network 的网络)
docker network connect [网络名] [容器名]

将容器连接到指定网络(容器可加入多个网络)

docker network connect my-network my-nginx(将 Nginx 加入自定义网络)
docker network disconnect [网络名] [容器名] 将容器从指定网络断开 docker network disconnect my-network my-nginx
docker network rm [网络名] 删除自定义网络(需先断开所有关联容器) docker network rm my-network
场景示例:

创建两个容器并加入同一自定义网络,实现容器间通过 “容器名” 通信(无需依赖 IP):

# 1. 创建自定义网络
docker network create app-network

# 2. 启动 Web 容器并加入网络
docker run -d --name web --network app-network nginx

# 3. 启动测试容器并加入网络,在测试容器内 ping Web 容器(用容器名即可)
docker run -it --network app-network ubuntu:22.04 ping web

四、数据卷管理(Volume)

数据卷是 Docker 中用于持久化存储数据的组件,独立于容器生命周期(容器删除后,数据卷数据不丢失),常用于数据库、配置文件等需要持久化的场景。

命令 功能说明 示例
docker volume ls 查看所有数据卷 docker volume ls
docker volume create [卷名] 创建自定义数据卷(默认存储在 /var/lib/docker/volumes/ 下) docker volume create mysql-data(创建用于 MySQL 的数据卷)
docker volume inspect [卷名] 查看数据卷详细信息(存储路径、挂载容器等) docker volume inspect mysql-data
docker volume rm [卷名] 删除指定数据卷(需先断开所有挂载的容器) docker volume rm mysql-data
docker volume prune 删除所有 未使用 的数据卷(清理无用资源) docker volume prune(执行前会提示确认)
场景示例:

用数据卷持久化 MySQL 数据(容器删除后,数据库数据仍保存在数据卷中):

# 1. 创建数据卷
docker volume create mysql-data

# 2. 启动 MySQL 容器,挂载数据卷到容器的 /var/lib/mysql(MySQL 数据存储目录)
docker run -d -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name my-mysql mysql:8.0

五、系统信息与资源清理

命令 功能说明 示例
docker info 查看 Docker 系统信息(版本、镜像数、容器数、存储驱动等) docker info
docker version 查看 Docker 客户端和服务端版本 docker version
docker system df 查看 Docker 磁盘使用情况(镜像、容器、数据卷占用空间) docker system df
docker system prune 清理所有未使用的资源(停止的容器、未使用的镜像、网络、数据卷) docker system prune -a-a 表示同时删除未被任何容器引用的镜像)

六、常用命令速查表格

场景 核心命令
镜像拉取 docker pull [镜像]:[标签]
容器启动(后台 + 端口映射) docker run -d -p 主机端口:容器端口 --name 容器名 镜像
查看运行中容器 docker ps
进入运行中容器 docker exec -it 容器名 /bin/bash
查看容器日志 docker logs -f 容器名
停止 / 删除容器 docker stop 容器名 / docker rm 容器名
清理无用资源 docker system prune -a
Logo

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

更多推荐