Não tenho certeza se esta é a comunidade certa para perguntar sobre meu problema, pois estou tentando lançar docker
no cygwin
ambiente windows
. Após a instalação do Docker Toolbox, estou tentando iniciar docker version
meu shell cygwin e obter:
$ 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.
No entanto, o arquivo real /cygdrive/c/Users/Alexey/.docker/machine/machines/default/ca.pem está lá, o problema parece estar em barras erradas (Windows vs UNIX) no caminho para o arquivo de certificado. Mas não consigo descobrir onde consertar isso.
Aqui estão as variáveis env definidas em ~/.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
ATUALIZAR
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.
SOLUÇÃOconforme proposto abaixo por @cloverhap, precisamos definir DOCKER_CERT_PATH
a variável de ambiente, mas ela deve conter o caminho do Windows, não o cygwin e, além disso, as barras invertidas devem ter escape, então a solução é adicionar isto:
export DOCKER_CERT_PATH=C:\\Users\\%USERNAME%\\.docker\\machine\\machines\\default
para.bash_profile
Responder1
No meu ambiente cygwin, o caminho do certificado do docker está definido como abaixo e o docker parece funcionar bem.
DOCKER_CERT_PATH=C:\Users\user\.docker\machine\machines\default
O seguinte realmente dá um erro
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.
Portanto, tente alterar seu DOCKER_CERT_PATH para o formato de caminho normal do Windows.
export DOCKER_CERT_PATH=C:\\Users\\Alexey\\.docker\\machine\\machines\\default
Minha versão do docker é 1.10.1, se os resultados forem diferentes.
Responder2
Eu tive o mesmo problema, então percebi que quando instalei o docker no meu sistema Windows 10, um programa chamado"Terminal de início rápido do Docker"foi instalado. Se você executar isso, fornecerá um shell bash e poderá executar o comando docker nesse terminal. Pode não ser a festa do Cygwin, mas e daí?
Isso lança isso ...
Responder3
Nenhuma das soluções indicadas aqui funcionou para mim. Descobri que mesmo usando o Cywin, é necessário configurar o proxy na GUI do Docker Desktop:
Depois disso consegui executar:
$ 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/