Docker 常用指令

admin@wraith.com 发布于 2026-05-25
#docker #常用指令

1、系统与服务管理

用于查看 Docker 版本、状态及系统级信息。

命令 说明 示例
docker version 查看 Docker 客户端和服务端版本信息 docker version
docker info 查看 Docker 系统详细信息(包括镜像/容器数量、驱动等) docker info
systemctl start docker 启动 Docker 服务 (Linux) sudo systemctl start docker
systemctl stop docker 停止 Docker 服务 (Linux) sudo systemctl stop docker
systemctl restart docker 重启 Docker 服务 (Linux) sudo systemctl restart docker

2、镜像管理 (Image)

镜像是容器的只读模板,以下指令用于获取、构建和管理镜像。

命令 说明 示例
docker images 列出本地所有镜像 docker images
docker pull 从仓库拉取镜像 docker pull nginx:latest
docker build 根据 Dockerfile 构建镜像 docker build -t my-app:v1 .
docker rmi 删除本地镜像 docker rmi <image_id>
docker tag 标记镜像(常用于推送到私有仓库前) docker tag my-app:latest registry.com/my-app:v1
docker push 推送镜像到仓库 docker push registry.com/my-app:v1
docker save 将镜像保存为 tar 归档文件 docker save -o my-app.tar my-app:latest
docker load 从 tar 归档文件加载镜像 docker load -i my-app.tar
docker history 查看镜像的构建历史层级 docker history <image_id>

3、容器生命周期管理 (Container)

这是日常使用最高频的部分,涉及容器的创建、运行、停止和删除。

3.1 创建与运行

docker run 是最核心的命令,常用参数如下:

-d: 后台运行(Detached mode)。

-p: 端口映射,格式为 宿主机端口:容器端口。

-v: 挂载数据卷,格式为 宿主机路径:容器路径。

--name: 指定容器名称。

-e: 设置环境变量。

--restart: 设置重启策略(如 always, on-failure)。

‌常用示例:

# 后台运行 Nginx,映射端口 8080:80,命名为 web-server
docker run -d -p 8080:80 --name web-server nginx

# 运行 MySQL,设置 root 密码,挂载数据卷
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /my/data:/var/lib/mysql --name mysql-db mysql:8.0

3.2 状态查询与控制

命令 说明 示例
docker ps 查看正在运行的容器 docker ps
docker ps -a 查看所有容器(包括已停止的) docker ps -a
docker stop 停止一个或多个运行中的容器 docker stop <container_id>
docker start 启动已停止的容器 docker start <container_id>
docker restart 重启容器 docker restart <container_id>
docker rm 删除已停止的容器 docker rm <container_id>
docker kill 强制停止容器(发送 SIGKILL 信号) docker kill <container_id>

3.3 容器内部操作与调试

命令 说明 示例
docker exec 在运行中的容器内执行命令 docker exec -it <container_id> /bin/bash
docker logs 查看容器日志 docker logs -f <container_id> (实时跟踪)
docker inspect 查看容器/镜像的详细底层信息 docker inspect <container_id>
docker top 查看容器内运行的进程 docker top <container_id>
docker stats 实时监控容器资源使用率 (CPU/Mem) docker stats
docker cp 在容器与主机之间复制文件 docker cp <container_id>:/app/log.txt ./log.txt

4、网络管理 (Network)

Docker 容器默认通过桥接网络通信,自定义网络可实现服务发现隔离。

命令 说明 示例
docker network ls 列出所有网络 docker network ls
docker network create 创建自定义网络 docker network create my-net
docker network connect 将容器连接到网络 docker network connect my-net <container_id>
docker network disconnect 断开容器与网络的连接 docker network disconnect my-net <container_id>
docker network rm 删除网络 docker network rm my-net
docker network prune 删除所有未使用的网络 docker network prune

5、数据卷管理 (Volume)

数据卷用于持久化容器数据,独立于容器生命周期存在。

命令 说明 示例
docker volume ls 列出所有数据卷 docker volume ls
docker volume create 创建数据卷 docker volume create my-vol
docker volume inspect 查看数据卷详细信息 docker volume inspect my-vol
docker volume rm 删除数据卷 docker volume rm my-vol
docker volume prune 删除所有未使用的数据卷 docker volume prune

6、系统清理与维护

随着开发进行,系统中会积累大量未使用的镜像、容器和网络,定期清理可释放磁盘空间。

命令 说明 注意
docker system df 查看 Docker 磁盘使用情况 -
docker system prune 清理所有未使用的容器、网络、悬空镜像 ‌慎用‌,会删除停止的容器
docker system prune -a 深度清理,包括未使用的镜像 ‌高危‌,会删除所有未被运行容器引用的镜像
docker container prune 仅清理已停止的容器 -
docker image prune 仅清理悬空镜像(无标签) -

7、Docker Compose (多容器编排)

虽然属于独立工具,但常与 Docker 配合使用,用于定义和运行多容器应用。

命令 说明 示例
docker-compose up 构建并启动服务 docker-compose up -d (后台运行)
docker-compose down 停止并移除容器、网络 docker-compose down
docker-compose ps 列出 Compose 项目中的容器 docker-compose ps
docker-compose logs 查看服务日志 docker-compose logs -f web
docker-compose build 构建或重新构建服务 docker-compose build

最佳实践建议

命名规范‌:尽量使用 --name 为容器指定有意义的名称,避免依赖随机生成的 ID。 ‌

资源限制‌:在生产环境中运行 docker run 时,建议使用 --memory 和 --cpus 限制容器资源,防止单个容器耗尽主机资源。 ‌

日志轮转‌:配置 Docker daemon 的日志驱动(如 json-file 配合 max-size),防止容器日志无限增长占满磁盘。 ‌

非 Root 运行‌:在 Dockerfile 中尽量使用 USER 指令切换到非 root 用户运行应用,提高安全性。

© 2026 Wraith Blog. Powered by Cloudflare.