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、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐