web-dev-qa-db-ja.com

Windows / cygwin環境でDockerを実行する

docker上のcygwin環境内で実際にwindowsを起動しようとしているため、これが私の問題について質問するのに適切なコミュニティかどうかはわかりません。 Docker Toolboxをインストールした後、起動しようとしていますdocker version私のcygwinシェルで取得:

$ 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

8
Alexey

私の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

結果が異なる場合、私のdockerバージョンは1.10.1です。

7
cloverhap

同じ問題があり、Windows 10システムにdockerをインストールすると、 "Docker Quickstart Terminal"というプログラムがインストールされていることに気付きました。あなたがそれを実行するならば、bashシェルを与え、あなたはそのターミナルでdockerコマンドを実行することができます。 Cygwinのbashではないかもしれませんが、何ですか?

enter image description here

これが起動…

enter image description here

0
Red Cricket

ここに示されている解決策はどれも私にとってはうまくいきませんでした。 Cywinを使用する場合でも、DockerデスクトップのGUIにプロキシを設定する必要があることを発見しました: enter image description here

その後、私は実行することができました:

$ 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/
0
Fabien