web-dev-qa-db-fra.com

Que fait la variable DOCKER_Host?

Je suis nouveau sur Docker, en utilisant Boot2Docker sur OSX. Après le démarrage, ce message est donné:

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

Même sans cela, les commandes de base de Docker (par exemple, docker run hello-world) fonctionne bien.

Les instructions d'installation ne sont pas très informatives:

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.

Savoir que c'est "sûr" ne dit pas pourquoi c'est utile.

Ce que je ne comprends pas bien:

  1. Qu'est-ce que le docker "client"?
  2. Quel est le "démon" docker?
  3. Qu'est-ce que le docker "Host"? (Le Boot2Docker VM lui-même?)
53
Steve Bennett

Ok, je pense que je l'ai eu.

Le client est la commande docker installée sous OS X.

Le hôte est la machine virtuelle Boot2Docker.

Le démon est un service d'arrière-plan qui s'exécute dans Boot2Docker.

Cette variable indique au client comment se connecter au démon.

Lors du démarrage de Boot2Docker, la fenêtre de terminal qui s'ouvre contient déjà DOCKER_Host, C'est pourquoi les commandes docker fonctionnent. Cependant, pour exécuter les commandes Docker dans d'autres fenêtres de terminal, vous devez définir cette variable dans ces fenêtres .

Si vous ne le définissez pas, vous obtenez un message comme celui-ci:

$ 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

Une façon de résoudre ce problème serait simplement de faire ceci:

$ export DOCKER_Host=tcp://192.168.59.103:2375

Mais, comme l'ont souligné d'autres personnes, il est préférable de procéder ainsi:

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

Pour épeler cette commande Bash éventuellement non intuitive, l'exécution de boot2docker shellinit Renvoie un ensemble de commandes Bash qui définissent les variables d'environnement:

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

Par conséquent, exécuter $(boot2docker shellinit) génère ces commandes , puis les exécute .

67
Steve Bennett

Après enquête, il convient également de noter que lorsque vous souhaitez commencer à utiliser docker dans une nouvelle fenêtre de terminal, la commande correcte est la suivante:

$(boot2docker shellinit)

J'ai testé ces commandes:

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

Notez que les informations du menu fixe ont renvoyé la même erreur. cependant .. en utilisant $(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

Il pointe vers le docker Host! J'ai suivi ces étapes:

$ 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

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

0
Rimian