1. ホーム
  2. macos

[解決済み] DOCKER_HOST 変数の役割は何ですか?

2022-02-17 12:45:34

質問事項

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.

安全であることが分かっても、なぜそれが有用なのかは分からない。

よくわからないこと

  1. docker "client"とは何ですか?
  2. docker "daemon"とは何ですか?
  3. docker "host"とは何ですか?(Boot2Docker VM 自体ですか?)

解決方法は?

よし、できたようだ。

クライアント docker コマンドがインストールされています。

ホスト はBoot2DockerのVMです。

デーモン は、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

それを解決する一つの方法は、単純にこうすることでしょう。

$ 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) はこれらのコマンドを生成します。 を実行します。 .