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