Linux コンテナを搭載した Win 10 にインストールされた Docker For Desktop では、hello-world イメージを実行できません。

Linux コンテナを搭載した Win 10 にインストールされた Docker For Desktop では、hello-world イメージを実行できません。

「Docker for Windows Installer」をダウンロードし、Windows 10 マシンで「Linux Container」オプションを指定してインストーラーを実行しました。インストールは成功しました。Hyper-v が有効になりました。仮想化も有効になっています。

コマンド docker --version は正常に実行できました。しかし、「docker run hello-world」を実行しようとすると、以下のエラーが発生します。

ローカルでイメージ 'hello-world:latest' が見つかりません C:\Program Files\Docker\Docker\Resources\bin\docker.exe: デーモンからのエラー応答: Gethttps://registry-1.docker.io/v2/library/hello-world/manifests/latest: 接続待機中に要求がキャンセルされました (ヘッダー待機中に Client.Timeout を超えました)。「C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help」を参照してください。

Windows コンテナーへのオプション スイッチに移動すると、Docker イメージを正常に実行できました。しかし、再び Linux コンテナーに切り替えると、同じ問題が発生します。

設定で DNS 8.8.8.8 をチェックし、docker の再起動も試みましたが、今のところ効果はありません。

また、Windows コンテナーに切り替えて Dockerfile を実行しようとすると、次のエラーが発生します。

ビルド コンテキストを Docker デーモンに送信しています 113.2kB ステップ 1/4: FROM java:8 8: library/java イメージからプルしています オペレーティング システム「linux」はこのプラットフォームでは使用できません

私を助けてください。

答え1

最新バージョンをインストールすると、問題が解決しました。Linux と Windows の両方でコンテナーを実行できます。hello-world イメージが実行されています。

私は以下の手順を実行しました:

 1. Uninstall Docker for Desktop.
 2. Remove docker folder and files from AppData : Local and Roaming.
 3. Remove docker folder from Program data
 4. Remoce .docker inside <C:\Users\UserName\> folder.
 5. Remove temp files
 6. Download latest version (my version :  2.3.0.2)
 7. Install Docker
 8. Enable Kubernetes.

これで、Docker イメージを構築してコンテナーを実行し、Kubernetes とオーケストレーションを使用してすべて正常に実行できるようになりました。ただし、私は Linux コンテナーを使用しています。Windows コンテナーは必要ないためです。

関連情報