nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Docker for Windowsで"could not read CA certificate"エラーが発生した時の対応方法

Docker for Windowsのバージョンを上げた時などで、つぎのようなエラーメッセージがでてDockerがほぼ使えない状態になってしまいます。

could not read CA certificate "C:\Users\\.docker\machine\machines\default\ca.pem": open C:\Users\.docker\machine\machines\default\ca.pem: The system cannot find the path specified.

私はDocker Toolbox(Docker for Windowsの前身)を同居させようとしたら、ぶっ壊れて上の状態になりました。現在、開発中のバージョンでは対応されているようですが、まだリリースされていないため、現在発症した場合は、手動で対応する必要があります。という訳で、以下に手順を纏めます。

以下が手順となりますが、試行錯誤して実施した為、不要な手続きを含んでいる可能性があります。

環境

  • Windows 10 Pro 1803
  • Docker for Windows 18.03.1-ce

環境変数をクリアする

PoweShellを起動して、以下を実行し環境変数を削除してください。

[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")

PowerShellでやらなくとも、システムの詳細設定から、上記の環境変数を手動で削除しても同じだと思います。

参考

fresh install - could not read CA certificate. The system cannot find the path specified. · Issue #1746 · docker/for-win · GitHub

docker-machineを0.15に更新する

更新するために、ここではWindowsのパッケージマネージャーの一つであるChocolateyを利用しています。

Chocolateyをインストールする

コマンドプロンプトから次のように入力し、Chocolateyをインストールします。

コマンドプロンプトの場合

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

PowerShellの場合

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

参考

https://chocolatey.org/install#installing-chocolatey

docker-machineの更新

つぎのようにコンソールから実行します。

choco upgrade docker-machine

参考

Chocolatey Gallery | docker-machine 0.15.0

以上です。