Dockerを避ける

Posted on
Docker containerd

皆さんはdockerを使っていますか?使っていますよね? でもその使い方、本当にdockerじゃないとダメですか?

自分のdockerの使い方

ほぼ docker builddocker 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を利用するようにしています。 ただデスクトップマシンでコンテナを動かすことは稀なのでそもそもほとんどコンテナの操作はしません。