An LDAP server running on Docker had reached 100% disk usage, so I looked into it.
This LDAP server is close to read-only, so the data should not grow that much, should it?
# 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 is clearly the one using a lot of space
The fix
It is exactly as this article says ↓
- Find the container 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-hostThe ID starts with 87f, so let’s search for the location of the log
$ docker inspect 87f |grep -i log
"LogPath": "/var/lib/docker/containers/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0/87f44c8f00af3c043762fcac9dca218c3bcf7f3111594b56210b18574c0317c0-json.log",
"LogConfig": {Now that the location of the log is known, let’s check its size
# 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.logIt had grown to 7.8GB
Delete the log file (empty it)
$ 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.logLeaving it like this only solves the problem temporarily, and the same symptom will come back sooner or later, so fix the log settings
On this server only the LDAP Docker containers are running, so I configure docker globally
Create /etc/docker/daemon.log anew with the following contents
$ cat /etc/docker/daemon.log
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}For an individual container, write it into docker-compose.yml as below
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"Restart docker and you are done