Docker(2)部署常用命令详解
·
1. 引言
Docker 作为目前最流行的容器化技术,已经成为开发、测试、部署环节中不可或缺的工具。无论是个人项目还是企业级应用,掌握 Docker 的常用命令都是基本功。本文将系统梳理 Docker 部署过程中最常用的命令,从镜像管理、容器操作到网络与数据卷,帮助你快速上手并高效运维。
2. 镜像管理命令
镜像是 Docker 部署的基础,掌握镜像的拉取、查看、删除与构建是第一步。
2.1 拉取镜像
# 从 Docker Hub 拉取镜像,默认 latest 标签
docker pull nginx
# 拉取指定版本
docker pull nginx:1.25
# 从指定仓库拉取
docker pull myregistry.example.com/myapp:v1.0
2.2 查看本地镜像
# 列出所有本地镜像
docker images
# 只显示镜像 ID
docker images -q
# 查看指定镜像
docker images nginx
2.3 删除镜像
# 删除指定镜像
docker rmi nginx:1.25
# 强制删除(即使有容器在使用)
docker rmi -f nginx
# 清理所有未被使用的镜像
docker image prune -a
2.4 构建镜像
# 使用当前目录下的 Dockerfile 构建
docker build -t myapp:1.0 .
# 指定 Dockerfile 路径构建
docker build -f ./deploy/Dockerfile -t myapp:1.0 .
3. 容器生命周期管理
容器是镜像的运行实例,以下命令覆盖了容器从创建到销毁的完整生命周期。
3.1 创建并启动容器
# 前台运行(占用终端)
docker run nginx
# 后台运行(推荐用于部署)
docker run -d nginx
# 指定名称、端口映射、环境变量
docker run -d --name my-nginx -p 8080:80 -e ENV=production nginx
# 挂载数据卷并设置重启策略
docker run -d --name my-app \
-p 3000:3000 \
-v /host/data:/app/data \
--restart=always \
myapp:1.0
3.2 查看容器
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 查看容器详细信息(JSON 格式)
docker inspect my-nginx
# 查看容器资源占用
docker stats
3.3 停止与启动容器
# 停止容器
docker stop my-nginx
# 启动已停止的容器
docker start my-nginx
# 重启容器
docker restart my-nginx
# 暂停/恢复容器进程
docker pause my-nginx
docker unpause my-nginx
3.4 删除容器
# 删除已停止的容器
docker rm my-nginx
# 强制删除运行中的容器
docker rm -f my-nginx
# 清理所有已停止的容器
docker container prune
4. 容器交互与日志
部署完成后,查看日志和进入容器排查问题是日常运维的高频操作。
4.1 查看日志
# 查看容器日志
docker logs my-nginx
# 实时跟踪日志输出
docker logs -f my-nginx
# 查看最近 100 行日志
docker logs --tail 100 my-nginx
# 带时间戳查看日志
docker logs -t my-nginx
4.2 进入容器
# 进入容器并启动交互式 Shell
docker exec -it my-nginx /bin/bash
# 对于精简镜像(无 bash),使用 sh
docker exec -it my-nginx /bin/sh
# 在容器内执行单条命令
docker exec my-nginx ls /etc/nginx
4.3 复制文件
# 从容器复制文件到宿主机
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
# 从宿主机复制文件到容器
docker cp ./app.jar my-app:/app/app.jar
5. 网络管理
多容器协作部署时,网络配置至关重要。
5.1 查看网络
# 列出所有网络
docker network ls
# 查看网络详情
docker network inspect bridge
5.2 创建与使用网络
# 创建自定义网络
docker network create my-network
# 指定子网创建网络
docker network create --subnet=172.20.0.0/16 my-network
# 容器加入指定网络
docker run -d --name my-app --network my-network myapp:1.0
# 将运行中的容器连接到网络
docker network connect my-network my-nginx
5.3 端口映射
# 随机映射端口
docker run -d -P nginx
# 指定端口映射(宿主机:容器)
docker run -d -p 8080:80 nginx
# 绑定指定 IP 的端口映射
docker run -d -p 192.168.1.100:8080:80 nginx
6. 数据卷管理
数据卷用于持久化容器数据,是数据库等有状态服务部署的关键。
6.1 创建与查看数据卷
# 创建数据卷
docker volume create my-data
# 列出所有数据卷
docker volume ls
# 查看数据卷详情
docker volume inspect my-data
6.2 挂载数据卷
# 使用命名数据卷
docker run -d --name mysql \
-v my-data:/var/lib/mysql \
mysql:8.0
# 使用宿主机目录挂载(bind mount)
docker run -d --name nginx \
-v /host/nginx/html:/usr/share/nginx/html \
nginx
6.3 删除数据卷
# 删除指定数据卷
docker volume rm my-data
# 清理所有未被使用的数据卷
docker volume prune
7. 容器编排与清理
对于多容器应用,Docker Compose 是常用的编排工具。
7.1 Docker Compose 常用命令
# 启动服务(后台运行)
docker compose up -d
# 构建镜像并启动
docker compose up -d --build
# 查看服务状态
docker compose ps
# 查看服务日志
docker compose logs -f
# 停止并移除服务
docker compose down
# 停止服务但保留数据卷
docker compose stop
7.2 系统清理
# 查看磁盘占用
docker system df
# 清理所有未使用的资源(镜像、容器、网络、构建缓存)
docker system prune -a
# 清理所有停止的容器
docker container prune
# 清理所有未被使用的镜像
docker image prune -a
8. 总结
本文系统梳理了 Docker 部署过程中最常用的命令,涵盖镜像管理、容器生命周期、日志交互、网络、数据卷以及 Compose 编排等核心场景。建议在实际部署中结合 docker --help 查看完整参数说明,并善用 docker inspect 排查问题。掌握这些命令,你将能够独立完成从镜像构建到容器上线的完整部署流程。
更多推荐

所有评论(0)