Docker 命令参考
本页是一份通用速查表。示例中的 <container>、<image>、<volume> 等内容都是占位符,执行前应替换为明确的目标。
:::tip 先确认操作范围
删除、清理和停止命令会改变本机状态。执行前先用 docker ps -a、docker image ls 或 docker volume ls 确认目标,不要用“删除全部容器 / 镜像”的全局命令代替项目级清理。
:::
查看环境与资源
docker version
docker info
docker ps
docker ps -a
docker image ls
docker volume ls
docker network ls
查看单个对象的完整配置:
docker inspect <container>
docker image inspect <image>:<tag>
docker volume inspect <volume>
docker network inspect <network>
拉取与构建镜像
# 拉取明确的版本标签
docker pull <registry>/<namespace>/<image>:<tag>
# 使用当前目录的 Dockerfile 构建
docker build -t <image>:<tag> .
# 指定 Dockerfile 和构建上下文
docker build -f <path-to-Dockerfile> -t <image>:<tag> <build-context>
# 查看镜像分层
docker history <image>:<tag>
生产发布应使用可追踪的版本号或提交哈希;latest 是可变标签,不适合作为唯一的发布标识。
运行与管理容器
docker run -d \
--name <container> \
--restart unless-stopped \
-p <host-port>:<container-port> \
--env-file <path-to-env-file> \
<image>:<tag>
docker stop <container>
docker start <container>
docker restart <container>
docker rm <container>
EXPOSE 只是镜像元数据;真正把容器端口发布到宿主机的是 -p 或 Compose 的 ports。敏感配置宜从 Secret 管理系统或受保护的环境文件注入,不要写进 Dockerfile 和命令历史。
日志与容器内诊断
# 最近 200 行并持续跟踪
docker logs --tail 200 -f <container>
# 在运行中的容器执行命令
docker exec -it <container> sh
# 查看进程与实时资源使用
docker top <container>
docker stats <container>
# 在宿主机与容器之间复制文件
docker cp <container>:/path/in/container ./local-path
docker cp ./local-file <container>:/path/in/container
容器镜像不一定包含 bash、curl 或包管理器。排障时优先使用镜像已有工具,避免临时修改正在运行的生产容器。
镜像导入与导出
在不能直接访问镜像仓库的环境中,可以导出和导入镜像:
docker image save -o <image-archive>.tar <image>:<tag>
docker image load -i <image-archive>.tar
docker export / docker import 处理的是容器文件系统快照,会丢失镜像历史和部分配置;迁移普通镜像时优先使用 save / load。
数据卷与网络
docker volume create <volume>
docker network create <network>
docker run -d \
--name <container> \
--network <network> \
-v <volume>:/data \
<image>:<tag>
删除容器不会自动删除命名卷。数据库等有状态服务在删除数据卷前必须完成备份并验证恢复流程。
Docker Compose
以下命令在包含 compose.yaml 的目录执行:
# 展开并校验最终配置
docker compose config
# 构建并在后台启动
docker compose up -d --build
# 查看状态和日志
docker compose ps
docker compose logs --tail 200 -f <service>
# 重新构建单个服务
docker compose up -d --build <service>
# 停止并移除本 Compose 项目的容器和网络,保留命名卷
docker compose down
docker compose down -v 会同时删除该 Compose 项目的命名卷。对数据库、消息队列等有状态服务执行前,应确认数据可丢弃或已有可恢复备份。
定向清理
优先删除明确对象:
docker rm <container>
docker image rm <image>:<tag>
docker volume rm <volume>
docker network rm <network>
确需清理未使用资源时,先查看占用,再逐类执行并阅读确认提示:
docker system df
docker container prune
docker image prune
docker network prune
docker volume prune
docker volume prune 可能删除仍有价值的数据,不应作为日常磁盘清理命令。