204 字
1 分钟
Docker 生产环境配置(存储目录迁移 / 日志限制)
一、迁移默认存储目录
Docker 默认将所有数据(镜像、容器、卷)存储在 /var/lib/docker/,生产环境系统盘通常空间有限,建议迁移到数据盘。
WARNING此操作建议在刚安装完 Docker 后执行,迁移前务必停止所有容器,避免数据丢失。
# 1. 停止 Docker 服务sudo systemctl stop docker
# 2. 创建新的数据目录mkdir -p /opt/docker/chmod -R 755 /opt/docker/
# 3. 迁移现有数据(如有)sudo cp -a /var/lib/docker/* /opt/docker/
# 4. 修改 Docker 配置文件mkdir -p /etc/dockervim /etc/docker/daemon.json在 daemon.json 中添加:
{ "data-root": "/opt/docker"}# 5. 重载配置并重启sudo systemctl daemon-reloadsudo systemctl restart docker
# 6. 验证新目录是否生效sudo docker info | grep "Docker Root Dir"
# 7. 确认数据无误后删除旧目录(可选)rm -rf /var/lib/docker二、限制容器日志大小
方法一:全局配置(推荐,对新容器生效)
在 /etc/docker/daemon.json 中添加:
{ "log-opts": { "max-size": "500m", "max-file": "3" }}max-size:单个日志文件最大 500MBmax-file:最多保留 3 个日志文件(滚动)
systemctl daemon-reloadsystemctl restart dockerNOTE此配置只对重启后新创建的容器生效,已运行的容器需重建才能应用。
方法二:脚本主动清理日志
#!/bin/bash# 根据实际 data-root 修改此路径(默认 /var/lib/docker/containers)log_path="/var/lib/docker/containers"for container_id in $(ls "$log_path"); do log_file="${log_path}/${container_id}/${container_id}-json.log" if [ -f "$log_file" ]; then echo "清理容器 ${container_id} 的日志" truncate -s 0 "$log_file" fidoneecho "日志清理完成"三、完整 daemon.json 配置参考
{ "data-root": "/opt/docker", "log-opts": { "max-size": "500m", "max-file": "3" }, "insecure-registries": [ "harbor.example.com" ], "registry-mirrors": [ "https://docker.example.com" ]} 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Docker 生产环境配置(存储目录迁移 / 日志限制)
https://blog.olinl.com/posts/docker-prod-config/ 相关文章 智能推荐
1
Docker 卸载指南
虚拟化与容器 介绍在 Ubuntu 和 CentOS/RHEL 系统上完整卸载 Docker 的步骤,包括停止服务、移除软件包、清理残留文件和目录。
2
Harbor 私有镜像仓库安装指南
虚拟化与容器 使用 Docker Compose 部署 Harbor 私有镜像仓库,包含自签名 SSL 证书生成、YAML 配置、Nginx 反向代理等完整流程。
3
Docker Compose 工具使用教程
虚拟化与容器 Docker容器的Compose工具
4
Docker 常用命令速查
虚拟化与容器 整理 Docker 日常运维中最常用的命令,涵盖容器生命周期管理、镜像操作、日志查看、镜像导入导出等核心操作。
5
多个docker-compose实例共享网络
虚拟化与容器 让你的多个docker-compose实例共同使用一个内部网络
