Docker & Docker Compose (常用命令速查版)

本文整理了 Docker 与 Docker Compose 日常开发、测试及生产环境中最常用的运维命令,涵盖项目部署、服务管理、日志排查、镜像构建、数据库备份、资源监控等常见场景,适合作为开发和运维速查手册。

一、首次部署项目

首次部署项目建议按照以下流程进行:

# 复制生产环境配置
cp .env.production .env

# 构建镜像并启动所有服务
docker compose up -d --build

# 查看服务运行状态
docker compose ps

如果已有旧容器导致冲突,可先删除容器再重新部署:

docker compose down

docker compose up -d --build

二、环境配置管理

查看 Compose 最终加载的配置:

docker compose config

查看指定服务配置:

docker compose config backend

修改 .env 后重新加载配置:

docker compose up -d

三、初始化种子数据

将脚本复制到容器:

docker cp seed_data.py yft-backend:/app/

执行初始化脚本:

docker exec -it yft-backend python seed_data.py

后台执行:

docker exec yft-backend python seed_data.py > seed.log 2>&1

四、Elasticsearch 全量同步

获取登录 Token 后调用同步接口:

TOKEN=$(curl -s -X POST http://127.0.0.1/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"13800000001","password":"123456"}' \
| grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)

if [ -n "$TOKEN" ]; then
    curl -X POST http://127.0.0.1/api/search/sync \
    -H "Authorization: Bearer $TOKEN"
else
    echo "获取 Token 失败"
fi

五、服务管理

启动全部服务:

docker compose up -d

启动单个服务:

docker compose up -d backend

重启服务:

docker compose restart backend

停止全部服务:

docker compose down

删除数据卷(慎用):

docker compose down -v

停止单个服务:

docker compose stop backend

六、日志排查

查看完整日志:

docker compose logs backend

实时查看日志:

docker compose logs -f backend

查看最近 100 行:

docker compose logs backend --tail 100

过滤错误日志:

docker compose logs backend | grep -i error

七、镜像构建

修改 Dockerfile 或依赖后重新构建:

docker compose build --no-cache backend

普通构建:

docker compose build backend

构建完成后启动:

docker compose build backend

docker compose up -d backend

八、容器操作

进入后端容器:

docker exec -it yft-backend bash

进入 MySQL:

docker exec -it yft-mysql mysql -uroot -proot123 yinfa_tong

进入 Redis:

docker exec -it yft-redis redis-cli

进入 Elasticsearch:

docker exec -it yft-elasticsearch bash

九、本地与容器文件互传

上传文件:

docker cp backend/app/xxx.py yft-backend:/app/app/

上传整个目录:

docker cp backend/app/ yft-backend:/app/

下载日志:

docker cp yft-backend:/app/logs ./logs

文件更新后重启:

docker compose restart backend

十、配置调试

查看应用配置:

docker exec yft-backend python -c \
"from app.config import settings;print(settings)"

查看容器环境变量:

docker exec yft-backend env

十一、数据库备份与恢复

导出数据库:

docker exec yft-mysql mysqldump \
-uroot -proot123 yinfa_tong \
> backup.sql

恢复数据库:

cat backup.sql | docker exec -i yft-mysql \
mysql -uroot -proot123 yinfa_tong

十二、资源监控

查看资源占用:

docker stats

查看 Compose 项目资源:

docker compose stats

查看运行进程:

docker top yft-backend

查看端口映射:

docker port yft-backend

查看容器详情:

docker inspect yft-backend

十三、磁盘清理

删除悬空镜像:

docker image prune

删除未使用镜像:

docker image prune -a

清理系统垃圾:

docker system prune

深度清理(慎用):

docker system prune -a -v

十四、生产环境慎用命令

以下命令可能导致数据丢失,请谨慎执行:

# 删除所有数据卷
docker compose down -v
# 删除所有镜像
docker image rm $(docker images -q)
# 删除所有未使用数据卷
docker volume prune

十五、常用技巧

修改 Dockerfile 或依赖文件后,需要重新构建镜像:

docker compose build

仅修改业务代码,可直接复制文件并重启容器:

docker cp xxx.py 容器:/app/

docker compose restart backend

修改 .env 后重新启动服务即可生效:

docker compose up -d

日志排查建议配合 --tail 使用,避免大量日志影响终端查看。

建议定期备份数据库,并使用定时任务自动执行备份。


总结

Docker Compose 日常运维主要围绕以下几个命令展开:

# 部署项目
docker compose up -d --build

# 查看状态
docker compose ps

# 查看日志
docker compose logs -f

# 重启服务
docker compose restart

# 构建镜像
docker compose build

# 进入容器
docker exec -it 容器名 bash

# 数据备份
mysqldump

# 资源监控
docker stats

# 磁盘清理
docker system prune

掌握以上命令,即可完成绝大多数 Docker 项目的部署、运维、调试和日常管理工作。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐