gcpのdatalabにchromeからアクセスできない

しばらくdatalabを使っていたらブラウザからアクセスできなくなった。 対応するportにchromeからアクセスすると、このページは動作していません、という画面になる。

gcloud compute ssh hogeVMに直接入ることは可能だったのでいろいろ試してみるとこんな感じだった

$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda1        16G  16G  0.0G  100% /mnt/stateful_partition
...

daemonが起動していなくてストレージがいっぱい。

du -shで/mnt/stateful_partition以下を見ていくと以下のディレクトリがいっぱいだった

/mnt/stateful_partition/var/lib/docker

ちなみにこれより下はsudoをつけてもduではアクセスできなかった(lsはできる)

消えて困るデータはなかったのでひとまず上記のディレクトリをまるごと消してみる (永続的なデータはdatalab-pdにあるはずなので)

$ sudo rm -rf /mnt/stateful_partition/var/lib/docker

これで一度VMを再起動し、datalab connect hogeしてみると無事ブラウザからアクセスできた。

ということで、docker用のストレージがいっぱいになっていたために、dockerdが起動できなかったことが原因だった模様

ちなみにdatalabのgpuインスタンスを使っていて起動に時間がかかるため、以下のようにVM自体を削除せずに繰り返し使っていた。

  • 使い始めにdatalab connect ~で接続
  • 使い終わったらCtrl-Cでプロセスkill
  • VMをconsoleからstop

なのでこのような状態になったと考えられる

しばらく使ってからdocker ps -aしてみると、使い終わったコンテナが残っていた。 以下のように使用済みのコンテナを削除することで上記のパーティションの容量は空けられた。

$ docker ps -a | grep Exited | awk '{print $1}' | xargs docker rm