Windows/cygwin 환경에서 Docker 실행

Windows/cygwin 환경에서 Docker 실행

dockerDocker Toolbox를 설치한 후 cygwin 셸에서 실행해 보았는데 다음과 같은 결과를 얻었습니다 .cygwinwindowsdocker 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.

해결책DOCKER_CERT_PATH아래 @cloverhap이 제안한 것처럼 환경 변수를 설정해야 하지만 여기에는 cygwin이 아닌 Windows 경로가 포함되어야 하며 백슬래시를 이스케이프해야 하므로 해결 방법은 다음을 추가하는 것입니다.

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

나는 같은 문제에 직면했고 Windows 10 시스템에 docker를 설치할 때 다음과 같은 파일이 있다는 것을 깨달았습니다."Docker 빠른 시작 터미널"설치되었습니다. 이것을 실행하면 docker 명령을 실행할 수 있는 bash 쉘이 제공됩니다. 이것은 Cygwin의 bash가 아닐 수도 있지만 그래서 무엇입니까?

여기에 이미지 설명을 입력하세요.

이것이 시작되었습니다…

여기에 이미지 설명을 입력하세요.

답변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/

관련 정보