Docker & Docker Compose (常用命令速查版)
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 项目的部署、运维、调试和日常管理工作。
更多推荐




所有评论(0)