VM を使った Docker Toolbox から ネイティブアプリの Docker Desktop へ移行してみます。
Mac の場合は問題なくインストールして実行できましたので、今回は Windows のケースについて記載します。
DOCKER TOOLBOX については下記を参照ください。
http://vistylee.com/docker-toolbox/
Contents
Docker Desktop
Docker Desktop for Windows は Windows の Hyper-V を使用して Docker を動作させます。
仕様する OS は Windows 10 Pro で行います。
Windows 10 home では Hyper-V は使えないようです。
Hyper-V
Windows では Hyper-V を有効にすると、Intel VT-x(AMD の場合h AMD-V)が VirtualBox から使えなくなるようで VirtualBox 5.2 系までは、VirtualBox が機能しなくなっていました。VirtualBox 6 系からフォールバック機能が追加され、Hyper-V が有効の状態でも稼働できるようになったようですが、CPU によっては、Virtualbox を 6 にしてしも、変わらずエラーとなるものをあるようです。安定して稼働できるかなど考慮する点はありますので、状況に応じて使い分けたほうがよさそうです。
インストール
MacおよびWindows用のDockerデスクトップ または、Docker Desktop for Windows から Docker Desktop Installer.exe ファイルをダウンロードしてインストールします。
インストール後の確認
ここで、Docker Toolbox を入れていた場合、エラーが表示されました。
バージョン確認
コマンドを実行すると下記のような証明書のエラーが表示されます。
1 2 |
> docker -v unable to resolve docker endpoint: open C:\Users\username\.docker\machine\machines\default\ca.pem: The system cannot find the path specified. |
解決
対応としては、システム環境変数から下記を削除することです。
1 2 3 4 |
DOCKER_TLS_VERIFY DOCKER_CERT_PATH DOCKER_HOST DOCKER_TOOLBOX_INSTALL_PATH |
下記を参考に参考に解決します。
[Docker for Windows] Certificate Error Solution | {apilevel.com}
PowerShell で下記を実行します。
1 2 3 4 5 |
[Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User") |
再インストールをして、コマンドを実行します。
1 2 |
> docker -v Docker version 19.03.8, build afacb8b |
無事に実行できるようになりました。
備考
Docker Toolbox をインストールしていた場合、環境変数が残ってしまうようなので、注意が必要です。
関連リンク
- DOCKER TOOLBOX で DOCKER 環境を構築する
http://vistylee.com/docker-toolbox/ - Windows 10 での Hyper-V の有効化
https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v - fresh install - could not read CA certificate. The system cannot find the path specified. · Issue #1746 · docker/for-win
https://github.com/docker/for-win/issues/1746 - [Docker for Windows] Certificate Error Solution
https://apilevel.wordpress.com/2017/11/23/docker-for-windows-certificate-error-solution/