DockerのMariaDBコンテナが起動失敗すると思ったら /etc/hosts が60GBで100% usage だった

表題のとおりなのだが、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 とか言ってる。んなアホな。

原因

デバッグ用のコンテナを作成して調べた。デバッグ用コンテナの作り方は以下の記事を参照。

あわせて読みたい
DockerでMongoDBのコンテナが永遠に再起動する時の対応 色々なパターンがあると思うが、今回は以下のエラーにより、永遠にrestartしていたものと思われる。 2024-11-03 21:25:06 {"t":{"$date":"2024-11-03T12:25:06.020+00:0...

結果は以下。

# 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に説明させてみたけど、「絶対違う」という感じ。コッチが知らないと思って適当に言ってるように思う。ぐぬぬ……。

まぁ勉強するとして、とりあえず対応のみ備忘録。

本サイトはUXを悪くするevilなGoogle広告を消しました。応援してくださる方は おすすめガジェット を見ていってください!
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次