OSXでBoot2Dockerを使用して、Dockerを初めて使用します。起動後、次のメッセージが表示されます。
To connect the Docker client to the Docker daemon, please set
export DOCKER_Host=tcp://192.168.59.103:2375
それでも、それがなくても、基本的なDockerコマンド(docker run hello-world
など)は正常に機能します。
インストール手順はあまり有益ではありません:
Note: If you see a message in the terminal that looks something like this:
To connect the Docker client to the Docker daemon, please set:
export DOCKER_Host=tcp://192.168.59.103:2375
you can safely set the evironment variable as instructed.
「安全」であることを知っているからといって、なぜ有用なのかはわかりません。
私が明確ではないこと:
わかりました。
clientは、OS Xにインストールされるdocker
コマンドです。
HostはBoot2Docker VMです。
daemonは、Boot2Docker内で実行されるバックグラウンドサービスです。
この変数は、デーモンへの接続方法をクライアントに指示します。
Boot2Dockerを起動すると、ポップアップするターミナルウィンドウにはすでにDOCKER_Host
が設定されているため、docker
コマンドが機能します。ただし、他のターミナルウィンドウでDockerコマンドを実行するには、この変数を設定する必要がありますこれらのウィンドウで。
設定に失敗すると、次のようなメッセージが表示されます。
$ docker run hello-world
2014/08/11 11:41:42 Post http:///var/run/docker.sock/v1.13/containers/create:
dial unix /var/run/docker.sock: no such file or directory
これを修正する1つの方法は、単にこれを行うことです。
$ export DOCKER_Host=tcp://192.168.59.103:2375
しかし、他の人が指摘したように、これを行う方が良いです:
$ $(boot2docker shellinit)
$ docker run hello-world
Hello from Docker. [...]
この直感的でない可能性のあるBashコマンドを説明するために、boot2docker shellinit
を実行すると、環境変数を設定する一連のBashコマンドが返されます。
export DOCKER_Host=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
したがって、$(boot2docker shellinit)
を実行すると、これらのコマンドが生成されますそして実行します。
調査の結果、新しいターミナルウィンドウでdockerの使用を開始するときの正しいコマンドは次のとおりです。
$(boot2docker shellinit)
私はこれらのコマンドをテストしました:
>> docker info
Get http:///var/run/docker.sock/v1.15/info: dial unix /var/run/docker.sock: no such file or directory
>> boot2docker shellinit
Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/key.pem
export DOCKER_Host=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
>> docker info
Get http:///var/run/docker.sock/v1.15/info: dial unix /var/run/docker.sock: no such file or directory
Docker infoが同じエラーを返したことに注意してください。しかし.. $(boot2docker shellinit)
...を使用する場合.
>> $(boot2docker init)
Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/ddavison/.boot2docker/certs/boot2docker-vm/key.pem
>> docker info
Containers: 3
...
これは、Dockerホストを指しています!私は次の手順に従いました。
$ boot2docker start
Waiting for VM and Docker daemon to start...
..............................
Started.
To connect the Docker client to the Docker daemon, please set:
export DOCKER_Host=tcp://192.168.59.103:2375
$ export DOCKER_Host=tcp://192.168.59.103:2375
$ docker run ubuntu:14.04 /bin/echo 'Hello world'
Unable to find image 'ubuntu:14.04' locally
Pulling repository ubuntu
9cbaf023786c: Download complete
511136ea3c5a: Download complete
97fd97495e49: Download complete
2dcbbf65536c: Download complete
6a459d727ebb: Download complete
8f321fc43180: Download complete
03db2b23cf03: Download complete
Hello world