Docker Desktopが有償化して結構経ちました。
普段はUbuntuにDocker入れてそこで使っているのであまり気にしていなかったのですが、ひょんなことからWindowsにDockerを入れることになり、有償化したので代替ツールを探していたらありました。Rancher Desktopです。
代替ツールがあったのは良いのですが少し躓いたので記事にしておきます。
目次
Rancher Desktopとは
公式はこちら。
元々はRancherはコンテナに特化したOSであるRancherOSを提供しているようです。
日本語の記事はこちらが分かりやすいかと思います。
Rancher Desktopで躓いたこと
環境
この記事ではRancher Desktopのインストールは済んでいるものとします。
- Windows10 Pro
- Rancher Desktop v1.3.0
docker pullが出来ない問題
原因
どうやらPCのFW設定が原因のようです。
この問題は会社から支給されたPCで発生しました。
後日自宅PCで試したところ問題無く使用出来たので普通に使用する分には問題は無さそうです。
これまでのDocker Desktopの場合だとdockerコマンドはWindows上で直接実行していましたが、Rancher DesktopはWSL2上で実行されるっぽいです。
なのでWSL2側の設定を色々見てあげる必要が出てきます。
以下のような感じで、デフォルトだとWSL2のネットワークアダプターはパブリックネットワークになっています。外部NWに抜ける通常のネットワークアダプターはプライベートネットワークになっています。
今回はここが問題で、パブリックネットワークからプライベートネットワークに通信する際にFWでほとんどの通信がFWがブロックされていたことが原因でした。
詳しくはこちらに記載されています。
対策
解決方法は色々ありますが、今回はWSL2のネットワークアダプターをプライベートに変更します。
Powershellを管理者権限で起動して下記を入力します。
PS C:\Windows\system32> Get-NetConnectionProfile
Name : 識別されていないネットワーク
InterfaceAlias : vEthernet (WSL)
InterfaceIndex : 10
NetworkCategory : Public
IPv4Connectivity : NoTraffic
IPv6Connectivity : NoTraffic
Name : xxxxxxxxxxxxxxxxxxx
InterfaceAlias : Wi-Fi
InterfaceIndex : 28
NetworkCategory : Private
IPv4Connectivity : Internet
IPv6Connectivity : NoTraffic
各ネットワークプロファイル情報が表示されますので、パブリック側のInterfaceIndex
をメモして次のコマンドを入力します。
PS C:\Windows\system32> Set-NetConnectionProfile -InterfaceIndex <your-interface-index> -NetworkCategory Private
これで再度docker pullコマンドを実行すると無事に通信出来ました。
今回私の環境だとこれで改善しましたが、プライベート側にもFWで制限が掛かっている場合、同様に解決出来るかは不明です。
もし同じ現象で悩んでいる方がいれば参考になれば幸いです。
他にもRancher Desktopで出会った問題があればこちらに追記していきます。