前言
docker host的硬碟滿了所以才想紀錄一下一些docker指令來騰出空間
Basic Commands
基本上都是docker開頭的指令
- docker ps - 看跑哪些docker containers
- docker volume 系列 - 這是管理docker volume相關的指令
- docker network 系列 - 這是管理docker network的
- docker system 系列 - 也是一些docker管理用的
其實大多數的指令都可以用portainer的GUI來替代
只有清理空間的相關指令比較常會用到
清理空間相關指令
清理沒用東西的萬用指令
1 | [root]$> docker system prune -a |
這個指令會把所有沒有正在跑得container以及沒用的volume/network全數清掉
使用前要先注意一下以免把所有的一切都清掉了
看佔空間的是什麼東西 - du
基本上會使用du -ahx | sort -rh | head -n 30把目錄下的前30大檔案/檔案夾列出來
有時候會有恐怖的驚喜 - 例如高達77G的json log file
清空巨大json log file
利用truncate指令把json file歸零
1 | [root]$> truncate -s 0 /var/lib/docker/container/<Container_UUID>/<Container_ID>.json |
限制Log大小
在docker-compose.yml中限制log大小
1 | # 限制某個service的log檔最大為5M |
然後要重跑docker-compose up -d
全局設定
1 | # /etc/docker/daemon.json |
然後重啟docker.service
1 | [root]$> systemctl daemon-reload |
但是只對未來新建的有效所以每一個container都需要重建才會生效