日常监控与维护
-
查看容器状态

docker ps -a # 查看所有容器状态 docker stats <容器名> # 实时监控资源占用(CPU/内存) docker logs -f <容器名> # 动态查看日志
-
资源清理
- 自动清理无用镜像、容器、网络:
docker system prune -a # 谨慎使用,会删除所有未使用的资源
- 单独清理:
docker image prune # 清理悬空镜像 docker container prune # 清理停止的容器
- 自动清理无用镜像、容器、网络:
-
日志管理
- 限制日志大小(在
docker-compose.yml中配置):services: ai_crayfish: logging: driver: "json-file" options: max-size: "10m" # 单个日志文件最大10MB max-file: "3" # 保留3个历史文件
- 限制日志大小(在
数据持久化与备份
- 卷(Volume)备份
# 备份数据卷到本地 docker run --rm -v <数据卷名>:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data .
- 数据库备份(如使用PostgreSQL/MySQL)
# 示例:PostgreSQL容器备份 docker exec <容器名> pg_dump -U <用户名> <数据库名> > backup.sql
更新与升级
- 更新容器(以不丢失数据为前提)
# 1. 拉取新镜像 docker pull <镜像名>:<新版本> # 2. 停止并删除旧容器(确保数据卷已分离) docker stop <容器名> && docker rm <容器名> # 3. 重新运行容器(挂载原有数据卷) docker run -v <数据卷名>:/data ... <新镜像>
- 使用Docker Compose更新
docker-compose pull && docker-compose up -d
健康检查与自愈
- 配置健康检查(在Dockerfile或docker-compose中):
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \ CMD curl -f http://localhost:5000/health || exit 1
- 设置自动重启策略(在运行容器时):
docker run --restart=unless-stopped <镜像名>
安全加固
- 最小化权限运行:
docker run --read-only --tmpfs /tmp <镜像名> # 只读根目录,临时目录可写
- 定期更新基础镜像(如Alpine/Ubuntu):
FROM alpine:3.18 # 定期检查并更新版本
- 扫描镜像漏洞:
docker scan <镜像名> # 需安装Docker Scan插件
灾难恢复
- 完整系统备份(导出所有关键配置):
# 备份Docker Compose配置 cp docker-compose.yml docker-compose.yml.backup # 备份所有数据卷 docker run --rm -v <卷名>:/data -v $(pwd):/backup alpine tar czf /backup/卷名.tar.gz -C /data .
- 快速恢复:
# 重新部署(假设已备份数据卷和配置) docker-compose up -d
性能优化
-
限制容器资源(防止单容器耗尽资源):
# docker-compose.yml示例 services: ai_crayfish: deploy: resources: limits: cpus: '2.0' memory: 4G -
使用多阶段构建减小镜像体积:
FROM python:3.9 as builder COPY requirements.txt . RUN pip install --user -r requirements.txt FROM python:3.9-slim COPY --from=builder /root/.local /root/.local
常用命令速查
| 功能 | 命令 |
|---|---|
| 进入容器 | docker exec -it <容器名> /bin/bash |
| 拷贝文件 | docker cp <容器名>:<容器路径> <主机路径> |
| 查看端口映射 | docker port <容器名> |
| 查看镜像层 | docker history <镜像名> |
注意事项
- 数据卷路径确认:更新前务必确保数据卷已正确挂载,避免数据丢失。
- 网络配置:跨容器通信需检查Docker网络配置(如
docker network ls)。 - 版本兼容性:升级时注意Docker版本与镜像的兼容性。
通过以上方法,可确保“AI小龙虾”Docker容器的稳定运行与可维护性,建议结合监控工具(如Prometheus+Grafana)实现全方位运维。
标签: AI小龙虾 Docker环境维护
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。