tutorial mac for downloads dockers macos virtual-machine daemon docker boot2docker

macos - for - tutorial docker mac



¿Qué hace la variable DOCKER_HOST? (3)

Soy nuevo en Docker, usando Boot2Docker en OSX. Después de arrancarlo, aparece este mensaje:

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

Sin embargo, incluso sin él, los comandos básicos de Docker (p. Ej., Docker docker run hello-world ) funcionan bien.

Las instrucciones de instalación no son muy informativas:

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.

Sabiendo que es "seguro" no dice por qué es útil.

Lo que no tengo claro:

  1. ¿Qué es el "cliente" del acoplador?
  2. ¿Qué es el docker "daemon"?
  3. ¿Qué es el "host" del docker? (La VM de Boot2Docker en sí?)

¡Señala al host docker! Seguí estos pasos:

$ 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

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


Ok, creo que lo tengo.

El cliente es el comando de docker instalado en OS X.

El host es la máquina virtual Boot2Docker.

El daemon es un servicio en segundo plano que se ejecuta dentro de Boot2Docker.

Esta variable le dice al cliente cómo conectarse al daemon.

Al iniciar Boot2Docker, la ventana del terminal que aparece ya tiene configurado DOCKER_HOST , por eso funcionan los comandos de DOCKER_HOST . Sin embargo, para ejecutar los comandos de Docker en otras ventanas de terminal, debe establecer esta variable en esas ventanas .

Si no se establece, aparece un mensaje como este:

$ 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

Una forma de solucionar eso sería simplemente hacer esto:

$ export DOCKER_HOST=tcp://192.168.59.103:2375

Pero, como señalaron otros, es mejor hacer esto:

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

Para deletrear este comando Bash posiblemente no intuitivo, al ejecutar boot2docker shellinit devuelve un conjunto de comandos Bash que establecen variables de entorno:

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

Por lo tanto, ejecutando $(boot2docker shellinit) genera esos comandos y luego los ejecuta .


Tras la investigación, también vale la pena señalar que cuando desee comenzar a utilizar Docker en una nueva ventana de terminal, el comando correcto es:

$(boot2docker shellinit)

Yo había probado estos comandos:

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

Observe que la información de Docker devolvió ese mismo error. sin embargo .. al usar $(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 ...