Я не уверен, что это подходящее сообщество, чтобы спросить о моей проблеме, так как я на самом деле пытаюсь запустить docker
в cygwin
среде на windows
. После установки Docker Toolbox я пытаюсь запустить docker version
в своей оболочке cygwin и получаю:
$ 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) в пути к файлу сертификата. Но я не могу понять, где это исправить.
Вот переменные env, заданные в ~/.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
решение1
В моей среде Cygwin путь к сертификату Docker на самом деле установлен, как показано ниже, и 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
Моя версия докера — 1.10.1, если результаты отличаются.
решение2
У меня была та же проблема, а потом я понял, что когда я установил Docker на свою систему Windows 10, программа под названием«Терминал быстрого запуска Docker»был установлен. Если вы запустите его, то получите оболочку bash, и вы сможете запустить команду docker в этом терминале. Это может быть не bash Cygwin, но что с того?
Это запускает это…
решение3
Ни одно из указанных здесь решений не сработало для меня. Я обнаружил, что даже при использовании Cywin необходимо настроить прокси в GUI Docker Desktop:
После этого я смог запустить:
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pulling fs layer
1b930d010525: Verifying Checksum
1b930d010525: Download complete
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/