これはなに
戒めです。環境構築芸人を自称しながらこんなことに5年気づかないとは。。。
追記: KVM + Dockerすればええやんというアドバイスをいただきました。試してみます。
想定される状況
あなたはラボのサーバ管理者です。一般権限のユーザから、Docker Composeが使いたいとの依頼がありました。
管理者
わかる、環境構築めんどくさいよね、Dockerじゃないと動かせない環境とかあるし。(NGCとか、Optuna使うときのPostgreSQLささっと立ち上げたいときとか1)
Dockerグループに入れるだけなら、管理者権限渡すわけではないし、まあ、ええやろ。。。
というわけで
sudo usermod -aG docker sudou
須藤さん!?
何を思ったか一般ユーザさん、以下のコマンドを実行してしまいました。
docker run -v /:/root_of_host alpine rm -rf /root_of_host
サーバは無事死にました。。。2
じゃあどうすれば
真に管理者権限(ぽいもの)を渡さないDocker Compose(のようなもの)があれば良いんですけどね。
たとえば以下が候補ですが、私の中ではまだ答えがないです。(だれかいい案あったらコメントください)(あと3年位前の知識なので、間違ってたら修正コメントください)
- Singularity: スパコンユーザにはなじみ深いソフトですね。docker pull, run, execあたりは代替できそう。でもsudoないとbuildできない、singularity composeは微妙だった印象。
-
podman: そもそも非root用なのか?Docker Desktopが有料化された時の退避先という印象。
筆者はインストールでこけた - Docker Rootless mode: Docker公式の非root版だ!と意気揚々と試したんですが、NFSマウントされたディレクトリをマウントできないという致命的な仕様があり、断念した記憶。
- enroot: 名前だけ知ってて試したことがない。composeあんのかな?