실제로 환경 docker
내에서 실행하려고 할 때 이것이 내 문제에 대해 물어볼 수 있는 올바른 커뮤니티인지 확실하지 않습니다 . Docker Toolbox를 설치한 후 cygwin 셸에서 실행하려고 하는데 다음을 얻습니다.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 대 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
하지만 여기에는 cygwin이 아닌 Windows 경로가 포함되어야 하며 게다가 백슬래시를 이스케이프해야 하므로 해결책은 다음을 추가하는 것입니다.
export DOCKER_CERT_PATH=C:\\Users\\%USERNAME%\\.docker\\machine\\machines\\default
에게.bash_profile
답변1
내 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
결과가 다른 경우 내 도커 버전은 1.10.1입니다.
답변2
답변3
여기에 표시된 솔루션 중 어느 것도 나에게 효과적이지 않았습니다. Cywin을 사용하더라도 Docker Desktop의 GUI에 프록시를 구성해야 한다는 것을 발견했습니다.
그 후 나는 다음을 실행할 수 있었습니다.
$ 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/