技術的な話

Rancher Desktopを入れたらdocker pull出来なかった話

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で出会った問題があればこちらに追記していきます。

-技術的な話
-, ,