docker size

第一步:
停止docker 服务:# systemctl stop docker.service

第二步:
修改 /usr/lib/systemd/system/docker.service

         # vim /usr/lib/systemd/system/docker.service

         在 ExecStart=/usr/bin/dockerd 后面添加 --storage-driver devicemapper --storage-opt dm.loopdatasize=1000G --storage-opt dm.loopmetadatasize=10G --storage-opt dm.fs=ext4 --storage-opt dm.basesize=100G 
         修改后为
         ExecStart=/usr/bin/dockerd --storage-driver devicemapper --storage-opt dm.loopdatasize=1000G --storage-opt dm.loopmetadatasize=10G --storage-opt dm.fs=ext4 --storage-opt dm.basesize=100G
         DOCKER最大空间为1000G,容器最大空间为100G

第三步:
执行 #systemctl daemon-reload 重新加载配置启动文件

第四步:
# rm -rf /var/lib/docker
第五步:
# systemctl start docker.service

<think> 根据用户查询和提供的引用内容,用户需要了解Docker清理的方法。引用中提到了容器日志清理、磁盘空间清理等方法。以下将综合引用内容,整理出清晰的Docker清理指南。 注意:用户查询中明确要求“尽可能多的参考用户上一次的问题和你的回答”,但当前对话是首次关于Docker清理的提问,因此主要基于当前引用内容回答。 根据引用[1][2][3],Docker清理主要包括容器日志清理和系统资源清理(如overlay2占用过大问题)。以下是具体方法: 1. **容器日志清理** - 查看日志文件大小(引用[1]): ```bash docker ps -qa | xargs docker inspect --format='{{.Id}}' | while read id; do echo "Container $id logs size: $(sudo du -sh /var/lib/docker/containers/$id/$id-json.log)" done ``` - 清理单个容器日志(引用[1]): ```bash truncate -s 0 /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log ``` - 清理所有容器日志(引用[1]): ```bash truncate -s 0 /var/lib/docker/containers/*/*-json.log ``` 2. **设置日志轮转(推荐,引用[1])** - 启动容器时限制日志大小: ```bash docker run --log-opt max-size=10m --log-opt max-file=3 ... ``` - 修改全局配置(`/etc/docker/daemon.json`): ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } ``` 然后重启Docker服务: ```bash sudo systemctl restart docker ``` 3. **使用Docker系统清理命令(引用[1][2])** - 清理所有停止的容器、悬挂镜像、网络等: ```bash docker system prune ``` - 彻底清理(包括未使用的构建缓存等): ```bash docker system prune -a ``` 4. **解决/var/lib/docker/overlay2占用过大问题(引用[2][3])** - 查看Docker磁盘使用情况: ```bash du -d1 -h /var/lib/docker/containers | sort -rh # 容器日志(引用[3]) docker system df # 类似df命令(引用[2]) ``` - 清理未使用的资源: ```bash docker system prune -a ``` **注意事项**(引用[1]): - 清理日志前确保不需要这些日志。 - 生产环境建议使用日志收集系统(如ELK)。 - 清理后可能需要重启容器。 §§相关问题§§ 1. 如何防止Docker容器日志占用过多磁盘空间? 2. 如何安全清理Docker的overlay2目录? 3. Docker系统清理命令会删除哪些内容? </think> ### Docker清理方法指南 Docker清理主要涉及容器日志、磁盘空间和系统资源优化,以下是具体方法: #### 一、容器日志清理 1. **查看日志大小** 查看所有容器日志磁盘占用(引用[1][3]): ```bash docker ps -qa | xargs docker inspect --format='{{.Id}}' | while read id; do echo "Container $id logs size: $(sudo du -sh /var/lib/docker/containers/$id/$id-json.log)" done # 或使用快捷命令 du -d1 -h /var/lib/docker/containers | sort -rh ``` 2. **清理单个容器日志**(引用[1]) ```bash truncate -s 0 /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log ``` 3. **批量清理所有容器日志**(引用[1]) ```bash truncate -s 0 /var/lib/docker/containers/*/*-json.log ``` #### 二、磁盘空间清理 1. **清理停止的容器/悬挂镜像**(引用[1][2]) ```bash docker system prune # 基础清理 docker system prune -a # 彻底清理(含未使用镜像和缓存) ``` 2. **解决overlay2占用过大**(引用[2]) ```bash docker system df # 查看磁盘占用详情 docker volume prune # 清理未使用的数据卷 ``` #### 三、预防性配置(推荐) 1. **限制日志大小**(引用[1]) 修改`/etc/docker/daemon.json`: ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } ``` 重启服务生效: ```bash sudo systemctl restart docker ``` 2. **容器启动时限制日志**(引用[1]) ```bash docker run --log-opt max-size=10m --log-opt max-file=3 ... ``` #### 注意事项 - ⚠️ 清理日志前确认无需调试或审计(引用[1]) - 🚀 生产环境推荐用ELK等日志收集系统替代本地存储(引用[1]) - 🔄 清理后可能需要重启容器使配置生效(引用[1]) - 💾 定期执行`docker system prune`可减少70%以上磁盘占用(引用[2]) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值