Docker 常用命令 大全
Docker 核心概念(精简版)
| 概念 | 核心定义 |
|---|---|
| 镜像(Image) | 只读的文件系统模板,包含应用运行所需的代码、依赖、配置等,是容器的"静态蓝本" |
| 容器(Container) | 镜像的运行实例,轻量、可移植、隔离,共享主机内核,是镜像的"动态运行态" |
| 镜像仓库 | 存储镜像的仓库,分公有(Docker Hub)和私有(Registry/Harbor) |
一、Docker 守护进程管理(系统服务类)
| 命令 | 作用说明 |
|---|---|
systemctl start docker |
启动 Docker 守护进程 |
systemctl stop docker |
停止 Docker 守护进程 |
systemctl restart docker |
重启 Docker 守护进程 |
systemctl status docker |
查看 Docker 服务状态(是否运行、进程ID、日志等) |
systemctl enable docker |
设置 Docker 开机自启动 |
systemctl enable docker --now |
立即启动 Docker + 设置开机自启动 |
systemctl daemon-reload && systemctl restart docker |
修改 Docker 配置文件后,重载配置并重启(生效配置) |
二、镜像操作命令(高频核心)
| 命令 | 作用说明 | 补充备注 |
|---|---|---|
docker images |
列出本地已拉取的镜像 | 输出:仓库名+标签、镜像ID、创建时间、大小 |
docker search nginx --limit 10 |
检索镜像仓库中的指定镜像(限制输出数量) | 默认检索 Docker Hub |
docker pull nginx |
拉取镜像(默认 latest 标签) | 指定版本:docker pull ubuntu:20.04 |
docker rmi ubuntu:20.04 |
删除本地指定镜像 | 强制删除(容器占用时):docker rmi -f 镜像ID |
docker push ubuntu24:mylable |
将本地镜像推送到仓库(需先登录仓库) | 推送前需打仓库前缀标签:docker tag 镜像名 仓库地址/镜像名:标签 |
docker tag ubuntu:20.04 ubuntu:newtag |
修改镜像标签(重命名) | 跨仓库打标签:docker tag nginx hub.c.163.com/my/nginx:v1 |
docker save -o local_ubuntu20.04.tar ubuntu:20.04 |
导出镜像为 tar 包(备份/迁移) | -o:指定输出文件路径 |
docker load -i local_ubuntu20.04.tar |
从 tar 包导入镜像(恢复/迁移) | -i:指定输入文件路径 |
docker system df |
查看镜像/容器/卷的磁盘占用情况 | 类似 Linux df -h |
docker build -t ubuntu24.04:ubuntu-base . |
基于 Dockerfile 构建镜像 | -t:指定镜像标签;.:Dockerfile 所在目录 |
docker history 镜像名/ID |
查看镜像的构建历史(每一层的操作) | 排查镜像构建问题常用 |
docker inspect 镜像名/ID |
查看镜像的详细元数据(配置、层信息、环境变量等) | 返回 JSON 格式,可结合 jq 过滤:`docker inspect nginx |
示例 Dockerfile(基础 Ubuntu 镜像)
dockerfile
FROM ubuntu:24.04
RUN apt-get update && apt-get -y install wget net-tools \
&& apt-get clean && rm -rf /var/lib/apt/lists/* # 清理缓存,减小镜像体积
三、容器操作命令(最常用)
| 命令 | 作用说明 | 核心参数解释 |
|---|---|---|
docker run -tid -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name local-registry registry:2 |
创建并启动容器 | -t:分配伪终端;-i:交互模式;-d:后台运行 -v:挂载数据卷/目录 -p:端口映射(宿主:容器) --name:容器名称 --restart=always:Docker 重启后容器自动重启 |
docker ps |
查看正在运行的容器 | -a:查看所有容器(包括停止的);-q:只输出容器ID |
docker exec -it 容器ID/名称 /bin/bash |
进入运行中的容器(交互模式) | /bin/bash:指定容器内的 shell;退出容器:exit(不终止容器) |
docker start/stop/restart 容器ID/名称 |
启动/停止/重启容器 | 批量操作:docker start $(docker ps -aq)(启动所有容器) |
docker kill 容器ID/名称 |
强制终止容器(发送 SIGKILL 信号) | 区别于 stop(优雅终止 SIGTERM) |
docker rm 容器ID/名称 |
删除已停止的容器 | 强制删除运行中的容器:docker rm -f 容器ID;批量删除:docker rm $(docker ps -aq) |
docker logs 容器ID/名称 |
查看容器日志 | -f:实时跟踪日志;--tail 100:查看最后100行;--since:指定时间范围 |
docker inspect 容器ID/名称 |
查看容器详细信息(网络、挂载、环境变量等) | 排查容器启动失败、挂载异常常用 |
docker cp 宿主路径 容器ID:容器路径 |
从主机拷贝文件到容器 | 示例:docker cp /tmp/test.txt nginx:/tmp/ |
docker cp 容器ID:容器路径 宿主路径 |
从容器拷贝文件到主机 | 示例:docker cp nginx:/tmp/test.txt /tmp/ |
docker export -o 容器备份.tar 容器ID |
导出容器为 tar 包(备份容器文件系统) | 仅导出文件系统,不含镜像元数据 |
docker import 容器备份.tar 新镜像名:标签 |
从容器 tar 包创建镜像 | 常用于基于容器修改后制作新镜像 |
四、数据卷操作命令(持久化存储)
| 命令 | 作用说明 | 补充备注 |
|---|---|---|
docker volume create 卷名 |
创建自定义数据卷(Docker 管理的持久化存储) | 数据卷默认存储路径:/var/lib/docker/volumes/ |
docker volume ls |
列出所有数据卷 | -q:只输出卷ID |
docker volume inspect 卷名 |
查看数据卷详细信息(存储路径、挂载容器等) | 排查卷挂载问题常用 |
docker volume rm 卷名 |
删除指定数据卷 | 需先卸载卷(停止使用该卷的容器) |
docker volume prune |
清理未被使用的所有数据卷(释放磁盘空间) | 执行前会确认,加 -f 强制清理 |
五、网络操作命令(容器网络)
| 命令 | 作用说明 | 补充备注 |
|---|---|---|
docker network ls |
列出所有 Docker 网络(默认:bridge、host、none) | -q:只输出网络ID |
docker network create 网络名 |
创建自定义桥接网络(容器间互通,隔离宿主机网络) | 指定网段:docker network create --subnet=172.20.0.0/16 mynet |
docker network inspect 网络名 |
查看网络详细信息(子网、网关、关联容器等) | 排查容器网络互通问题常用 |
docker network connect 网络名 容器ID/名称 |
将容器连接到指定网络 | 一个容器可连接多个网络 |
docker network disconnect 网络名 容器ID/名称 |
将容器从指定网络断开 | 断开后容器无法通过该网络通信 |
docker network rm 网络名 |
删除指定网络 | 需先断开所有关联容器 |
六、Docker Compose 命令(多容器编排)
| 命令 | 作用说明 | 补充备注 |
|---|---|---|
docker-compose up -d |
基于 docker-compose.yml 启动所有容器(后台运行) | -f:指定自定义配置文件:docker-compose -f my-compose.yml up -d |
docker-compose down |
停止并删除所有容器、网络(保留卷和镜像) | -v:同时删除数据卷;--rmi all:删除构建的镜像 |
docker-compose build |
构建/重新构建 compose 配置中的镜像 | --no-cache:不使用缓存构建(强制更新依赖) |
docker-compose logs -f |
实时查看所有 compose 容器的日志 | 指定服务:docker-compose logs -f nginx |
docker-compose restart 服务名 |
重启指定 compose 服务 | 不指定服务名则重启所有服务 |
七、其他高频命令(运维排查)
| 命令 | 作用说明 | 补充备注 |
|---|---|---|
docker info |
查看 Docker 系统信息(版本、驱动、镜像数、容器数等) | 排查 Docker 环境问题常用 |
docker --help |
查看 Docker 全局帮助文档 | 子命令帮助:docker run --help |
docker stats |
实时查看容器的资源使用率(CPU、内存、网络IO、磁盘IO) | -a:查看所有容器;--no-stream:只输出一次 |
docker system prune |
清理无用的容器、镜像、网络、卷(释放磁盘空间) | -a:清理所有未使用的镜像(包括未被引用的);-f:强制清理 |
docker login |
登录镜像仓库(Docker Hub/私有仓库) | 登录私有仓库:docker login 仓库地址 |
docker logout |
退出已登录的镜像仓库 |
总结
- 核心分类:按「守护进程、镜像、容器、数据卷、网络、Compose、运维排查」7类整理,符合日常使用习惯;
- 关键补充:修正了笔误(如"查询当前已创建的juan"→"数据卷")、补充参数解释和使用场景,便于新手理解;
- 实用技巧 :标注了批量操作、强制操作、排查问题的常用参数(如
-f/-q/--no-cache),提升运维效率。
这份整理后的命令清单可直接作为速查表,覆盖开发/运维日常 90% 以上的 Docker 操作场景。