it-swarm.com.de

Was macht die Variable DOCKER_Host?

Ich bin neu in Docker und verwende Boot2Docker unter OSX. Nach dem Booten erhalten Sie folgende Meldung:

To connect the Docker client to the Docker daemon, please set
export DOCKER_Host=tcp://192.168.59.103:2375

Aber auch ohne Docker können grundlegende Docker-Befehle (z. B. docker run hello-world) funktioniert gut.

Die Installationsanweisungen sind nicht sehr informativ:

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.

Zu wissen, dass es "sicher" ist, sagt nicht, warum es nützlich ist.

Was mir nicht klar ist:

  1. Was ist der Docker "Client"?
  2. Was ist der Docker "Daemon"?
  3. Was ist der Docker "Host"? (Der Boot2Docker VM selbst?)
53
Steve Bennett

Ok, ich glaube ich habe es verstanden.

Das Client ist der in OS X installierte Befehl docker.

Das Host ist die Boot2Docker-VM.

Der Daemon ist ein Hintergrunddienst, der in Boot2Docker ausgeführt wird.

Diese Variable teilt dem Client mit, wie eine Verbindung zum Dämon hergestellt werden soll.

Beim Starten von Boot2Docker ist im angezeigten Terminalfenster bereits DOCKER_Host Festgelegt, daher funktionieren die Befehle docker. Um Docker-Befehle in anderen Terminalfenstern auszuführen, müssen Sie diese Variable in diesen Fenstern festlegen.

Wenn es nicht gesetzt wird, wird eine Meldung wie folgt angezeigt:

$ 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

Eine Möglichkeit, dies zu beheben, besteht darin, einfach Folgendes zu tun:

$ export DOCKER_Host=tcp://192.168.59.103:2375

Aber wie von anderen betont, ist es besser, dies zu tun:

$ $(boot2docker shellinit)
$ docker run hello-world
Hello from Docker. [...]

Um diesen möglicherweise nicht intuitiven Bash-Befehl zu formulieren, wird durch Ausführen von boot2docker shellinit Eine Reihe von Bash-Befehlen zurückgegeben, mit denen Umgebungsvariablen festgelegt werden:

export DOCKER_Host=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1

Wenn Sie also $(boot2docker shellinit) ausführen, werden diese Befehle generiert und dann ausgeführt .

67
Steve Bennett

Bei der Untersuchung ist auch zu beachten, dass der richtige Befehl lautet, wenn Sie Docker in einem neuen Terminalfenster verwenden möchten:

$(boot2docker shellinit)

Ich hatte diese Befehle getestet:

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

Beachten Sie, dass die Docker-Informationen denselben Fehler zurückgaben. jedoch .. bei Verwendung von $(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
...
3
ddavison

Es zeigt auf den Docker Host! Ich bin diesen Schritten gefolgt:

$ 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

Sehen:
http://docs.docker.com/userguide/dockerizing/

0
Rimian