🐳

docker rm -fがZFSのせいで失敗する話

2021/06/25に公開

おはこんばんにちは

先程ちょっと困ったので備忘録として残します

私はMintユーザなのですがたまに違うディストリの検証するためにDockerコンテナ上で作業します

コンテナ起動しっぱなしでOS再起動とかすると
コンテナがExit状態で残りますよね?

私はズボラな人間なのでこれがよく溜まっているので
思い出したようにあの残骸をdocker rmするのですが
先程こんなエラーが出ました

$ docker rm -f elastic_edison 
Error response from daemon: container 82de58e15a8c1db2a8e0709abb3c4707270e221ced631d8e6d46c07b09349623: driver "zfs" failed to remove root filesystem: exit status 1: "/usr/sbin/zfs fs destroy -r rpool/var/lib/docker/b7d09d5dbf5001fcd2da7521d77e490c3ac3c6fd1774713ce6fd9b78666731ef" => cannot open 'rpool/var/lib/docker/b7d09d5dbf5001fcd2da7521d77e490c3ac3c6fd1774713ce6fd9b78666731ef': dataset does not exist

私はZFS上にLinuxインストールしてるので多分他のファイルシステム使ってたら出ないエラーだと思います

で、これの解決策というか。

適当にこれやったら治ったというか。。

ちゃんとした手順じゃない気がするというか。。。

まぁとりあえずこれで治りました

$ zfs create rpool/var/lib/docker/b7d09d5dbf5001fcd2da7521d77e490c3ac3c6fd1774713ce6fd9b78666731ef
$ docker rm -f elastic_edison 
elastic_edison

要するにzfs fs destroy -rコマンドで消そうとしてるところが無いってエラーっぽいからとりあえず作ってみたら消せちゃった😉

これ正しい対処法なんだろうか。。。。🤔

でもエラー文言でググっても解決策見つけられなかったし。。。

docker psしてもちゃんと消えてるように見えるんで正式な対応作見つけるかDockerかZFSかわからないけどこの問題に対応してくれるまでこの方法で回避していこうと思います。。。

それでは良いLinuxライフを

しゃみしゃっきり〜

P.S.

インストーラがZFS対応してくれたおかげでRoot on ZFS環境も簡単に出来るようになってますね

つまりこの環境のユーザも増えてるはず

ということはこの問題もそんな人たちがすぐ修正してくれると思ってます😆

Discussion