Vagrantでやっていた開発環境構築をDocker化するにあたり、MySQLのダンプデータのインポート中やビルドコマンド実行時にディスクいっぱい系のエラーにぶつかりました。
Docker Desktop for Macを使っています。
MySQLのときはインポート中に、
ERROR 1114 (HY000) at line 31537: The table 'table_name' is full
で止まる。
コンテナに入ってbashでコマンド叩いたりしてると
no space left on device
が出てmkdirすらできない状況になりました。
Mac自体のディスクには空きがあるのになんで!?と思ったら、Dockerが直接Macのディスクを使うわけではなく、Diskイメージというものを使っているそうでこれの理解が必要でした。
確認したら割当が64GBになっており、63GB以上使ってました。
DBのダンプが80GB あったんですが、通常のVolumeを使うとおそらくこのDiskイメージに書き込まれ容量不足になってました。ホストのディレクトリをマウントすると成功するのはそういう理屈かな。
ローカル環境の docker を断捨離するためにやること - Qiita
Docker for Macも仮想マシン(HyperKit)で動いているしょせん偽物ということは意識しておいた方がよさそう。