外观
日志与磁盘清理
先看谁占的
bash
docker system df
docker system df -v # 详细到每个镜像 / 卷
du -sh /var/lib/docker/containers/*/*-json.log | sort -h | tail容器日志无限增长
默认 json-file 驱动不限大小。全局设置在 /etc/docker/daemon.json:
json
{
"log-driver": "json-file",
"log-opts": { "max-size": "20m", "max-file": "3" }
}改完 systemctl restart docker,只对之后新建的容器生效,老容器要重建。
单个服务在 compose 里设:
yaml
logging:
driver: json-file
options:
max-size: "20m"
max-file: "3"清理
bash
docker image prune # 悬空镜像
docker image prune -a # 所有没被容器用的镜像
docker container prune # 停掉的容器
docker volume prune # 没被引用的卷(小心,数据可能在里面)
docker builder prune # 构建缓存
docker system prune -a # 上面全部一起(不含卷)volume prune 之前先 docker volume ls 看一眼,确认没有手动创建但暂时没挂载的卷。
journald 也会吃磁盘
bash
journalctl --disk-usage
journalctl --vacuum-size=200M一台 1C1G 的小机器
内存紧的话:
- 别跑
latest,钉版本,避免更新后内存需求突然涨 docker stats看谁占内存- 加 swap 兜底:
bash
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab