スクエニ ITエンジニア ブログ

Rancher Desktop で Docker を使ってみよう

これは ranch

日常的に Docker Desktop を使って快適にお仕事しているホシイです。

しかし Docker をそう頻繁には使わない方や、エンジニアでない方に実行環境を渡したいだけなので単に実行するだけでよいとかいった用途に、Docker Desktop 以外の (ライセンスの縛りが無い・ゆるい) 選択肢もほしいという声を時折聞くようになりました。

そこで… Rancher Desktop?

折しも Docker Desktop の値上げニュースが話題になってもおり、Rancher Desktop でもおなじようなことができると聞いたので、今回はその使用感を試してみたいと思います。

ただし業務で使っている環境はこわしたくなく、今回使ったのは私物 PC の Ubuntu Desktop 環境、先日 upgrade した version 22.10 です。いくつかのことを検証しましたが、機能的には Windows などで使うのとそう差はないのではないかと思います。(WSL と組み合わせての部分が今回は検証できていないですが…)

ではいってみましょう。

既存 Docker の uninstall

まずはもともと入っている Docker を根こそぎ消します。apt で入れていたので、そのまま 公式手順 に従って実施します。

基本的には apt purge するだけですね。

nerdctl + containerd を試す

次に、本題からすこしそれますが、nerdctl + containerd という構成も試してみたく、こちらを先にやってみました。
これもさほど迷うことはなく、こちらの Install 手順 に沿って進めます。

依存関係で必要なものがすこしわかりづらかったのですが、わたしの環境では以下が不足していて追加しました。環境によってご調整ください。

install できたら、いつも Docker でやっているように container 実行を試してみます。

$ nerdctl run --rm -it ubuntu

ふつうにできました。nerdctl の GitHub ページに docker との互換性について詳しく書いていますが、ほんとうにコマンドそのものの名前が違うくらいで、違和感なく使えます。

これは日常的に使えるのでは? と感じましたが、わたしの場合ふだん使いにどうしても必要なものがもうひとつあります。VS Code の Dev Container です。

この状態で Dev Container を起動しようとしたところ、Docker が install されていないよ、install する? というメッセージが表示されて動作しませんでした。
nerdctl に docker という名前の symlink をつくったり、VS Code の設定で docker cli の path を nerdctl に向けたりしても (エラーメッセージは変わりましたが) Docker daemon の動作も確認しているようで、その程度では解決しませんでした。

すこし web を探したところ、要望はわりと以前から出ているようですが対応は保留になっているようです。
https://github.com/microsoft/vscode-remote-release/issues/6014
Dev Container CLI は open source だからじぶんでやってくれていいんだよ? というコメントがありますね…

ということで、とりあえず常用はあきらめて削除します。install 手順を書くのを端折っていて恐縮ですが、削除のほうはだいたいこんな感じでやりました。

$ sudo apt purge containerd runc containernetworking-plugins rootlesskit uidmap slirp4netns
$ sudo rm /usr/local/bin/buildkit* /usr/local/bin/buildctl /usr/local/bin/nerdctl /usr/local/bin/containerd-rootless*.sh 

Rancher Desktop を試す

ということでようやく今回の本題です。
これも、公式の手順 に沿って install しました。かんたんに並べると以下のような感じです。

$ curl -s https://download.opensuse.org/repositories/isv:/Rancher:/stable/deb/Release.key | gpg --dearmor | sudo dd status=none of=/usr/share/keyrings/isv-rancher-stable-archive-keyring.gpg
$ echo 'deb [signed-by=/usr/share/keyrings/isv-rancher-stable-archive-keyring.gpg] https://download.opensuse.org/repositories/isv:/Rancher:/stable/deb/ ./' | sudo dd status=none of=/etc/apt/sources.list.d/isv-rancher-stable.list
$ sudo apt update
$ sudo apt install rancher-desktop

単純ですね。
qemu 関係が含まれており、500MB 程度の download、1GB 程度の disk space が必要と表示されました。

apt での install が終わり、手動で app launcher などからRancher Desktop を起動すると、window があらわれて初期設定がはじまります。いくつかの選択肢が提示されますが、今回は以下のように選択しました。

  • Enable Kubernetes を off
  • dockerd (moby) を選択する
    • (nerdctl + containerd では VS Code Dev Container が以下略)
  • PATH は Automatic を選択
    • ~/.bashrc に、~/.rd/bin への PATH が追記されました。

これで、(Docker を入れているので当然といえば当然ですが) 完全に違和感なくいつものように docker を使えるようになりました。
VS Code Dev Container もちゃんと動きます。うまくいかない場合、PATH の反映が行き渡るように VS Code の再起動などをお試しください。

GUI の様子が伝わるように、以下にいくつか screenshot を貼っておきます。Docker Desktop に比べるとちょっと機能が少ないですが、基本的な操作はできるようになっています。しかし逆に、これくらいの基本的な操作なら cli だけでもいいかなって人もいそうではあります。

Rancher Desktop - General (VM 起動中)
Rancher Desktop - Images
Rancher Desktop - Troubleshooting
Rancher Desktop - Diagnostics

さらに、Rancher Desktop を最小化しておくと通知領域にアイコンが入って、実行状態が確認できるようになります。また、そのアイコンから終了をさせるとちゃんと qemu の process まで消えました。必要なときだけ実行する手順としてわかりやすく、扱いやすいなと感じました。
(ただ、Rancher Desktop の window を閉じる (終了する) だけでもすべての機能が止まってしまうようで、これはどうかなと思いました。daemon 部分だけ生きててくれてもいいような気もします…)

まとめ

今回は、ふだん使いの Docker のための Rancher Desktop の使用感についてお伝えしました。VS Code Dev Container ファンとしてはまだまだ Docker 様様でありつつ、いろんな選択肢が増えておりかつお手軽に切り替えもできるのがたいへんありがたいことだなと思いました。

Rancher Desktop 自体に関しては、製品自体としてはよくできているなと感じるものの、最小限 container を使いたいだけというかたには必要無いかもというのと、GUI はあるものの機能的には充実しているわけではないのでいくぶん中途半端かなとも感じましたが、Docker 環境をお手軽に導入する方法としては極めて優秀と思いました。

せっかくなので私物 PC ではしばらく常用してみようと思います。

今回は Windows、特に WSL と組み合わせての使用感がお伝えできずごめんなさい。
Windows での Docker Desktop 以外の選択肢については、以前の記事 でも書いていますのでぜひ合わせてご覧ください。

参考

以下、参考にさせていただきました。

この記事を書いた人

記事一覧
SQUARE ENIXでは一緒に働く仲間を募集しています!
興味をお持ちいただけたら、ぜひ採用情報ページもご覧下さい!