皆さんはdockerを使っていますか?使っていますよね? でもその使い方、本当にdockerじゃないとダメですか?
自分のdockerの使い方
ほぼ docker build
か docker run --rm -it
しかしません。
runする場合もOSのパッケージングを調べるだとかその程度です。
この使い方にdockerは果たして必要なのでしょうか?
dockerはコンテナランタイムではない
当初、dockerはコンテナランタイムでした。 しかし今はもう違います。
dockerはコンテナを扱うパッケージソフトウェアといえる立ち位置にいます。 なのでbuildができたりpullができたりinspectができたりします。
またLinuxだけではなくmacOSやWindowsの上で動くバージョンも提供されています。
ちょっとコンテナを実行して中身を確認したいとか、ちょっとコマンドが使ってみたいくらいであればコンテナランタイムさえあれば十分です。
なのに大きなソフトウェアであるdockerをインストールする必要があるでしょうか? もしdockerを使わずに困らないのであれば頑張ってdockerを入れる必要はないのです。
そこでcontainerd
だったらdockerのランタイム部分のcontainerdだけを使えばいいです。 ちょっとコンテナを走らせるくらいであればdockerを使わずに素のcontainerdを使っても特に問題ありません。
docker build
はBazelで行うようにします。
自宅で24時間起動しているマシンのうち1台はcontainerdのみをインストールしました。 他のマシンはまだdockerが動いていますが、次にセットアップする時にcontainerdにしようと思っています。
一方通常利用しているLinuxデスクトップマシンはdockerをインストールしたままです。
ctr
コマンドは使えるのでdockerをバイパスしてcontainerdを利用するようにしています。
ただデスクトップマシンでコンテナを動かすことは稀なのでそもそもほとんどコンテナの操作はしません。