Mac(M1)でRancher Desktopを試してみました。
事例報告は多い方がいいだろうと考え、自分の状況をあれこれ共有しておきます。
たぶん時期も重要なので、本記事は2022年2月6日に書いていることを強調しておきます。
背景
MacBook Pro(2021)を買うと同時に新プロジェクトに参加し、そこで作成したコンテナが激重でした。
重くて仕方ない構成だったのもあり、我慢して使ってたのですが...
ただでさえDocker for Macは遅いのにM1と組み合わせることで更に悪化する。大枚はたいて買ったM1 Proでアプリケーションのベンチマークとったら (3年前の) Intel Macbook Proの構成より遅くて衝撃を受けた。
この記事で衝撃を受けたのと、ちょうどRancher Desktopリリースの記事を読んで気になってたのがきっかけで試してみる気になりました。
前提
- 既にDocker Desktopをインストール済みである
- 初めからRancher Desktopだけ入れるのと、Docker Desktopから移行するのとでは色々違うはず
- Rancher Desktopに完全に切り替えるのは怖かったので、一応 Docker Desktopも残しておきたい
- 2022年2月6日現在、Rancher Desktopのバージョンは1.0.1
Rancher Desktopのインストール
まずは、Docker Desktopを終了(≠アンインストール)しておきます。
当然この状態ではdockerコマンドを叩いてもエラー(docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock.)になります。
https://rancherdesktop.io/ からdmgファイルをダウンロードして、インストールしました。
Rancher Desktopを起動し、Kubernetesのバージョンは"v1.22.6(stable)"、コンテナランタイムはせっかくなので"containerd"を選択しました。
nerdctlは自動で入って(中略)macはアプリの初回起動時に行われるよ
らしいのですが、自分の環境ではnerdctl
を叩いても"zsh: command not found: nerdctl"と怒られます。
パスが通ってないだけ? "Insufficient permission to manipulate /usr/local/bin: Error: EACCES: permission denied, access '/usr/local/bin'"と表示されているのがその理由かもしれません。
https://docs.rancherdesktop.io/faq/ を見ると、
A long-term solution to improve the handling of permissions is in the works. In the meantime, a temporary workaround is to change ownership of /usr/local/bin by running
sudo chown $USER /usr/local/bin
.
とあります。
ここで諦めてしまったけど、その後の文を読んだら、上記実施後にRancher Desktopを再起動するだけで良かったかも。
When you are able to write to the directory, Rancher Desktop is able to create the symlinks.
この後しばらく待つと、画面左下で進捗を表示していたKubernetesコンテナイメージのダウンロードが終わり、Imagesに一覧が表示されるようになりました。
コンテナランタイムの切り替え
Kubernetes Settingsにてコンテナランタイムを"dockerd"に変更すると、dockerコマンドが使えるようになります。これだけでも、今まで激重だったコンテナがだいぶ軽くなったような?
考察
バージョン1.0.1とはいえ、まだ機能的に成熟してない感があります。Docker有償化に合わせた、ビジネス的な事情とかあるのかな...
個人的には、Mac起動時に自動的にアプリが起動する設定が欲しいところ(Docker Desktopにはある)。
あと、Docker(Desktop)からの移行であれば、ランタイムはdockerdが無難かもしれません。
2/6追記
自分の環境ではnerdctlを叩いても"zsh: command not found: nerdctl"と怒られます。
sudo chown $USER /usr/local/bin
を実行し、Rancher Desktopを起動(コンテナランタイムは"containerd")、Supporting Utilitiesにて"/usr/local/bin/nerdctl"にチェック入れたら使えるようになりました。
エラーメッセージも消えています。
注) この状態のままMacを再起動したら起動しなくなりました!!
(感嘆符と"support.apple.com/mac/restore"だけ表示された状態、下記参照)
https://support.apple.com/ja-jp/HT211868?cid=mc-ols-mac-article_ht211868-macos_ui-09292020
少なくとも、リンク作成後はchownを元に戻す必要がありそうです。
2/7追記
docker login
しようとすると、"Error saving credentials: error storing credentials - err: exit status 1, out: Post "http://ipc/registry/credstore-updated": dial unix /Users/MY_NAME/Library/Containers/com.docker.docker/Data/backend.sock: connect: connection refused
"というエラーが出ることを確認。
『【Docker】docker loginをするときにError saving credentials: error storing credentialsがでてログインできないときの話』を参考にconfig.jsonをのぞいてみると、下記のようになっていた。
{
"credsStore" : "desktop"
}
この"desktop"って"Docker Desktop"のことだろうか...Rancher Desktopの代わりにDocker Desktopを立ち上げた状態でdocker login
したら"Login Succeeded"した。