Dockerで稼働しているLDAPサーバーが容量100%になってたので調べてみた。
このLDAPサーバーは、読み込み専用に近いので、それほどデータは増えないはずなのに?
# du -sh /var/lib/docker/* |sort -n
1.2G /var/lib/docker/overlay2
2.1M /var/lib/docker/image
4.0K /var/lib/docker/runtimes
4.0K /var/lib/docker/swarm
4.0K /var/lib/docker/tmp
4.0K /var/lib/docker/trust
4.4M /var/lib/docker/volumes
7.8G /var/lib/docker/containers
20K /var/lib/docker/builder
24K /var/lib/docker/plugins
60K /var/lib/docker/network
108K /var/lib/docker/buildkit
明らかに/var/lib/docker/containersが容量大になっている
対応策
まんま、この記事の通りです↓
- コンテナIDを調べる
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9de577ac08a6 osixia/phpldapadmin:latest "/container/tool/run" 2 years ago Up 7 weeks 443/tcp, 0.0.0.0:6001->80/tcp, :::6001->80/tcp ldap-admin
87f44c8f00af osixia/openldap:latest "/container/tool/run" 2 years ago Up 7 weeks 0.0.0.0:389->389/tcp, :::389->389/tcp, 636/tcp ldap-host
IDが87fで始まるので、ログの場所を検索してみる
$ docker inspect 87f |grep -i log
"LogPath": "/var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log",
"LogConfig": {
ログの場所が分かったので、容量を調べてみる
# ls -lh /var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log
-rw-r----- 1 root root 7.8G 10月 5 16:15 /var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log
7.8GBと肥大化していた
ログファイルを削除する(空にする)
$ sudo truncate -s 0 /var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log
# ls -lh /var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log
-rw-r----- 1 root root 0 10月 5 16:18 /var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log
このままでは一時的に解決しただけで、何れ同じ症状が再発するので、ログの設定を修正
このサーバーでは、LDAPのDockerのみ稼働なので、dockerグローバル設定します
/etc/docker/daemon.logを下記の内容で新規作成
$ cat /etc/docker/daemon.log
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
個別のコンテナだと下記のようにdocker-compose.ymlへ記述
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
docker再起動して完了です