No estoy seguro de si esta es la comunidad adecuada para preguntar sobre mi problema, ya que en realidad estoy intentando iniciarlo docker
dentro cygwin
del entorno windows
. Después de instalar Docker Toolbox, intento iniciar docker version
en mi shell cygwin y obtengo:
$ 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.
Sin embargo, el archivo real /cygdrive/c/Users/Alexey/.docker/machine/machines/default/ca.pem está ahí, el problema parece estar en barras diagonales incorrectas (Windows vs UNIX) en la ruta al archivo de certificado. Pero no puedo entender dónde solucionarlo.
Aquí están las variables de entorno configuradas en ~/.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
ACTUALIZAR
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.
SOLUCIÓNcomo lo propone @cloverhap a continuación, necesitamos configurar DOCKER_CERT_PATH
la variable de entorno, pero debe contener la ruta de Windows, no cygwin y, además, las barras invertidas deben tener caracteres de escape, por lo que la solución es agregar esto:
export DOCKER_CERT_PATH=C:\\Users\\%USERNAME%\\.docker\\machine\\machines\\default
a.bash_profile
Respuesta1
En mi entorno cygwin, la ruta del certificado de Docker en realidad está configurada como se muestra a continuación y Docker parece funcionar bien.
DOCKER_CERT_PATH=C:\Users\user\.docker\machine\machines\default
De hecho, lo siguiente da un error.
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.
Intente cambiar su DOCKER_CERT_PATH al formato de ruta normal de Windows.
export DOCKER_CERT_PATH=C:\\Users\\Alexey\\.docker\\machine\\machines\\default
Mi versión de Docker es 1.10.1, si los resultados son diferentes.
Respuesta2
Tuve el mismo problema, luego me di cuenta de que cuando instalé Docker en mi sistema Windows 10 apareció un programa llamado"Terminal de inicio rápido de Docker"fue instalado. Si ejecuta eso, obtendrá un shell bash y podrá ejecutar el comando Docker en esa terminal. Puede que no sea la fiesta de Cygwin, pero ¿y qué?
Eso lanza esto...
Respuesta3
Ninguna de las soluciones indicadas aquí funcionó para mí. Descubrí que incluso usando Cywin, debes configurar el proxy en la GUI de Docker Desktop:
Después de eso pude ejecutar:
$ 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/