表題のとおりなのだが、MariaDBコンテナが突然起動に失敗するようになり、永遠に再起動をしていた。で、ログを見るとどうも容量不足っぽかった。……え?
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 59G 56G 704K 100% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/vda1 59G 56G 704K 100% /etc/hosts
tmpfs 12G 0 12G 0% /proc/acpi
tmpfs 12G 0 12G 0% /sys/firmware
???🤔
環境
- Intel Mac mini 2018
- macOS 14.6.1
- Docker Desktop 4.35.1
- WordPressのコンテナをたてていた
本質ではないが docker-compose.yml
は以下。
services:
--- 省略 ---
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- db_data:/var/lib/mysql
restart: always
---省略 ---
volumes:
wordpress_data:
db_data:
症状
MariaDBコンテナが永遠に再起動する。
ログがかろうじて取れた。
2024-11-03 22:17:59 2024-11-03 13:17:59 0 [ERROR] InnoDB: preallocating 12582912 bytes for file ./ibtmp1 failed with error 28
2024-11-03 22:17:59 2024-11-03 13:17:59 0 [ERROR] InnoDB: Could not set the file size of './ibtmp1'. Probably out of disk space
2024-11-03 22:17:59 2024-11-03 13:17:59 0 [ERROR] InnoDB: Unable to create the shared innodb_temporary
2024-11-03 22:17:59 2024-11-03 13:17:59 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
なんか out of disk space
とか言ってる。んなアホな。
原因
デバッグ用のコンテナを作成して調べた。デバッグ用コンテナの作り方は以下の記事を参照。
結果は以下。
# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 59G 56G 704K 100% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/vda1 59G 56G 704K 100% /etc/hosts
tmpfs 12G 0 12G 0% /proc/acpi
tmpfs 12G 0 12G 0% /sys/firmware
/
と /etc/hosts
が100%。そんなわけないよな。
ChatGPTに聞くとかなり意味不明かつ支離滅裂で頼りにならなかった。実際滅茶苦茶なことを言っているということだけはわかったが、僕の圧倒的な知識不足のために詰めることができない……。でもとりあえず /etc/hosts
が56GBは異常なのは確かだ。
操作して怪しかったのは以下。
# Docker DesktopのVMにシェルでアクセス
docker run -it --privileged --pid=host justincormack/nsenter1
入ったらoverlay2の容量を確認する。
du -sh /var/lib/docker/overlay2
これが45GBほどあって、どうにも怪しい。
対応
ランボー怒りの docker system prune -a
で解決。
いや……うん……。
ChatGPTとは色々押し問答したがDocker全部消せばいいじゃないですか?ぐらいの提案をカジュアルにしてきてつらい。ChatGPTマジで sudo rm -rf /
みたいなこと平気で言ってくるのはなんなの?
まぁでも結局 docker system prune -a
ですわ。これを実行したところ、 overlay2
の容量は1.2GBまで削減。MariaDBコンテナの /
も18GB程度におさまり、無事起動するようになった。
所感: 何がなんだかわかってない
Docker、しかもMac版のDocker Desktopについてわかってないとダメっぽいように思った。ChatGPTに説明させてみたけど、「絶対違う」という感じ。コッチが知らないと思って適当に言ってるように思う。ぐぬぬ……。
まぁ勉強するとして、とりあえず対応のみ備忘録。
コメント