Windows

Windows/cygwin環境下執行Docker

  • April 18, 2019

我不確定這是否是正確的社區來詢問我的問題,因為我實際上是在嘗試docker在. 安裝 Docker Toolbox 後,我嘗試在我的 cygwin shell 中啟動並獲得:cygwin``windows``docker version

$ docker version
Could not read CA certificate "\\cygdrive\\c\\Users\\Alexey\\.docker\\machine\\machines\\default\\ca.pem": open \cygdrive\c\Users\Alexey\.docker\machine\machines\default\ca.pem: The system cannot find the path specified.

但是,實際文件 /cygdrive/c/Users/Alexey/.docker/machine/machines/default/ca.pem 在那裡,問題似乎出在證書文件路徑中的錯誤斜杠(windows vs UNIX)中。但我不知道在哪裡修復它。

以下是在 ~/.bash_profile 中設置的環境變數:

export DOCKER_HOST=tcp://192.168.99.100:2376
export DOCKER_MACHINE_NAME=default
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/cygdrive/c/Users/Alexey/.docker/machine/machines/default
export TERM=cygwin

更新

Alexey@Alexey-PC ~
$ echo $DOCKER_CERT_PATH
/cygdrive/c/Users/Alexey/.docker/machine/machines/default/

Alexey@Alexey-PC ~
$ docker version
Could not read CA certificate "\\cygdrive\\c\\Users\\Alexey\\.docker\\machine\\machines\\default\\ca.pem": open \cygdrive\c\Users\Alexey\.docker\machine\machines\default\ca.pem: The system cannot find the path specified.

正如@cloverhap 下面提出的解決方案,我們需要設置DOCKER_CERT_PATH環境變數,但它應該包含 windows 路徑,而不是 cygwin,而且反斜杠應該被轉義,所以解決方案是添加這個:

export DOCKER_CERT_PATH=C:\\Users\\%USERNAME%\\.docker\\machine\\machines\\default

.bash_profile

在我的 cygwin 環境中,docker cert 路徑實際上設置如下,並且 docker 似乎工作正常。

DOCKER_CERT_PATH=C:\Users\user\.docker\machine\machines\default

以下確實給出了錯誤

DOCKER_CERT_PATH=/cygdrive/c/Users/user/.docker/machine/machines/default
$ docker version
Could not read CA certificate "\\cygdrive\\c\\Users\\user\\.docker\\machine\\machines\\default\\ca.pem": open \cygdrive\c\Users\user\.docker\machine\machines\default\ca.pem: The system cannot find the path specified.

因此,請嘗試將 DOCKER_CERT_PATH 更改為正常 Windows 路徑格式。

export DOCKER_CERT_PATH=C:\\Users\\Alexey\\.docker\\machine\\machines\\default

如果結果有任何不同,我的 docker 版本是 1.10.1。

引用自:https://unix.stackexchange.com/questions/263250