この記事は、 Docker Advent Calendar 2022 の 22日目の記事だ。
Windows 上や mac OS 上で、手軽に Docker や Kubernetes の環境を構築するための、 Docker Desktop というツールが存在する。
この Docker Desktop は、 2021年8月31日以降、営利企業での利用は基本的に有料サブスクリプションが必須 となった。
更に、 2022年10月27日以降、 Docker Team プランにて 100人のユーザー数上限が設けられ 、それ以上の場合は Docker Business プランの契約が必要となっている。
まぁ、営利企業ならそれぐらい払えよって話なんだが、のっぴきならん理由でなかなかそうもいかない諸兄も少なくないだろう。
正直、 Business プランで Docker Desktop 以外の機能を全く使わない(ないし使えない)場合、 $21/user/month はだいぶ高い。
ということで、代替?になるかわからんが、主に Windows での実行をスコープに、 同一コンセプトの Rancher Desktop への移行を紹介してみよう。
Rancher Desktop について
Rancher Desktop は、 Docker Desktop と同様 PC の仮想環境上にコンテナデーモンを起動させ、 デスクトップから手軽に Docker CLI (with Moby/dockerd) や nerdctl (with containerd) を利用できるようにするツールだ。
かつての SUSE Linux の開発元、 現在の openSUSE プロジェクトの主要スポンサーとなっている SUSE 社 が開発している、 Rancher ソリューションの一環として、 オープンソースで開発されているプロジェクトである。
WSL2 上に dockerd や containerd デーモンを立ち上げ、 他の WSL2 ディストリビューションや ホストOS から Docker CLI や nerdctl が使えるようになっている。
Windows の Docker CLI からも、 WSL 内の Docker CLI からも、 Docker outside of Docker (DooD) が問題なくできるなど、基本的な機能はしっかりしている。
Docker Desktop と比較すると、以下のような利点がある。
- 無料で利用できる
- nerdctl にも対応している
- Kubernetes のバージョンが選べる
- VPN 環境下でも問題が発生しにくい
- v1.8.1 のネットワークスタックの変更により、問題を回避できるようになった。
一方で、使っているといくつかの問題が目につく。 (1.9.0 現在)
プロキシ環境下で イメージの pull させる公式手順がない- v1.9.0 で解決済み
- WSL 内からの CLI の実行にいくつか難がある
- docker CLI の実行が、 2~3 テンポ遅い
docker run
に--interactive
(-i
) オプションを付けないと、標準出力がホスト側に表示されない
また、問題とまでは言わないまでも、いくつか注意点もある。
- 付属の docker-compose が、 docker compose コマンドと同等の Compose V2 である
- Docker Desktop 付属の V1 との間には いくつかの破壊的変更 がある
Hyper-V の仮想化に依存するため、 VPN 環境下と相性が悪い- ネットワークスタックの構造の変更で解消し、むしろ利点となった。
Docker Desktop から Rancher Desktop への移行
Windows 版に於ける、 Docker Desktop から Rancher Desktop への移行手順をまとめておく。