Windows/cygwin 환경에서 Docker 실행

Windows/cygwin 환경에서 Docker 실행

실제로 환경 docker내에서 실행하려고 할 때 이것이 내 문제에 대해 물어볼 수 있는 올바른 커뮤니티인지 확실하지 않습니다 . Docker 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.

해결책아래 @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

나는 같은 문제가 있었고 Windows 10 시스템에 Docker를 설치할 때 다음과 같은 프로그램이 있다는 것을 깨달았습니다."Docker 빠른 시작 터미널"설치되었습니다. if를 실행하면 bash 쉘이 제공되고 해당 터미널에서 docker 명령을 실행할 수 있습니다. 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/

관련 정보