Docker 常用命令速查笔记

2026/11/14 Docker

整理自 Docker 官方文档,适合日常开发 / 运维快速查阅。

官方文档入口:https://docs.docker.com/


# 一、Docker 安装与状态

# 查看 Docker 版本
docker version

# 查看 Docker 系统信息(镜像数、容器数、存储驱动等)
docker info

# 检查 Docker 服务状态(systemd 系统)
systemctl status docker

# 启动 / 停止 / 重启 Docker
systemctl start docker
systemctl stop docker
systemctl restart docker

# 设置开机自启
systemctl enable docker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 二、镜像(Image)操作

# 搜索镜像(默认查 Docker Hub)
docker search nginx

# 拉取镜像(不指定 tag 默认拉 latest)
docker pull nginx:alpine

# 查看本地已有镜像
docker images
docker image ls

# 给镜像打标签
docker tag nginx:alpine myrepo/nginx:test

# 删除镜像(需先删除依赖容器)
docker rmi nginx:alpine
docker image rm <image_id>

# 强制删除镜像
docker rmi -f <image_id>

# 查看镜像构建历史
docker history nginx:alpine

# 导出镜像为 tar 文件
docker save nginx:alpine -o nginx_alpine.tar

# 从 tar 文件导入镜像
docker load -i nginx_alpine.tar

# 清理悬空镜像(dangling images)
docker image prune

# 清理所有未被使用的镜像
docker image prune -a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# 三、容器(Container)操作

# 1. 运行容器

# 前台运行(退出即停止)
docker run ubuntu:22.04 echo "hello"

# 后台运行(-d)
docker run -d --name mynginx -p 8080:80 nginx:alpine

# 交互式运行(进入 shell)
docker run -it ubuntu:22.04 /bin/bash

# 自动删除容器(退出后自动 rm)
docker run -it --rm ubuntu:22.04 /bin/bash

# 挂载数据卷
docker run -d \
  --name pg17 \
  -v pgdata:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -p 5432:5432 \
  postgres:17.11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

常用参数说明:

参数 说明
-d 后台运行
-it 交互式终端
-p 端口映射(宿主机:容器)
-v 数据卷挂载
--name 指定容器名
-e 环境变量
--rm 退出后自动删除容器
--restart 重启策略(no / always / unless-stopped / on-failure)

# 2. 查看容器

# 查看运行中的容器
docker ps

# 查看所有容器(含已停止)
docker ps -a

# 查看容器详细信息
docker inspect <container_id>

# 查看容器日志
docker logs <container_id>

# 实时跟踪日志
docker logs -f <container_id>

# 查看容器资源占用
docker stats
docker stats <container_id>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 3. 容器生命周期管理

# 启动 / 停止 / 重启
docker start <container_id>
docker stop <container_id>
docker restart <container_id>

# 暂停 / 恢复
docker pause <container_id>
docker unpause <container_id>

# 强制停止
docker kill <container_id>

# 删除已停止的容器
docker rm <container_id>

# 强制删除运行中的容器
docker rm -f <container_id>

# 删除所有已停止的容器
docker container prune
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 4. 进入容器

# 进入运行中的容器(推荐)
docker exec -it <container_id> /bin/bash

# 若容器无 bash,用 sh
docker exec -it <container_id> /bin/sh

# 在容器内执行单条命令
docker exec <container_id> ls /var/log
1
2
3
4
5
6
7
8

# 四、数据卷(Volume)操作

镜像只声明容器内路径;容器运行时才形成挂载关系;宿主机路径由 Docker 或用户绑定决定。

# 查看所有数据卷
docker volume ls

# 创建数据卷
docker volume create pgdata

# 查看数据卷详情
docker volume inspect pgdata

# 删除数据卷
docker volume rm pgdata

# 清理未被使用的卷
docker volume prune
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 五、网络(Network)操作

# 查看网络列表
docker network ls

# 创建自定义网络
docker network create mynet

# 查看网络详情
docker network inspect mynet

# 将容器连接到网络
docker network connect mynet <container_id>

# 断开容器与网络的连接
docker network disconnect mynet <container_id>

# 删除网络
docker network rm mynet

# 清理未使用的网络
docker network prune
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 六、Docker Compose

# 查看版本
docker compose version

# 启动服务(后台)
docker compose up -d

# 启动并强制重建
docker compose up -d --build

# 停止并删除容器、网络
docker compose down

# 停止并删除容器、网络、卷
docker compose down -v

# 查看服务状态
docker compose ps

# 查看服务日志
docker compose logs

# 实时跟踪日志
docker compose logs -f

# 在指定服务中执行命令
docker compose exec web bash

# 拉取 compose 中定义的镜像
docker compose pull
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 七、系统清理

# 查看 Docker 磁盘占用
docker system df

# 清理所有未使用的对象(镜像、容器、网络、构建缓存)
docker system prune

# 深度清理(含未使用镜像)
docker system prune -a

# 清理构建缓存
docker builder prune
1
2
3
4
5
6
7
8
9
10
11

# 八、Dockerfile 常用指令速查

指令 说明
FROM 指定基础镜像
LABEL 添加元数据
ENV 设置环境变量
ARG 构建时参数
WORKDIR 设置工作目录
COPY 复制文件到镜像
ADD 复制文件(支持 URL 和 tar 自动解压)
RUN 构建时执行命令
CMD 容器启动默认命令
ENTRYPOINT 容器入口命令
EXPOSE 声明暴露端口
VOLUME 声明数据卷挂载点
USER 指定运行用户
HEALTHCHECK 健康检查

# 九、常用组合示例

# 一键启动 PostgreSQL 17.11
docker run -d \
  --name postgres17 \
  -e POSTGRES_USER=app \
  -e POSTGRES_PASSWORD=app123 \
  -e POSTGRES_DB=appdb \
  -v pgdata:/var/lib/postgresql/data \
  -p 5432:5432 \
  --restart unless-stopped \
  postgres:17.11

# 进入 PostgreSQL 容器执行 psql
docker exec -it postgres17 psql -U app -d appdb
1
2
3
4
5
6
7
8
9
10
11
12
13

# 十、官方文档导航

主题 链接
Docker 总览 https://docs.docker.com/
Docker CLI 参考 https://docs.docker.com/reference/cli/docker/
Docker Compose https://docs.docker.com/compose/
Dockerfile 参考 https://docs.docker.com/reference/dockerfile/
Docker Engine API https://docs.docker.com/reference/api/engine/