web-dev-qa-db-fra.com

Impossible de se connecter au démon Docker lors de l'exécution avec sudo

Mon service Docker est opérationnel. Cependant, lorsque vous essayez d'utiliser Docker en l'exécutant avec Sudo, par exemple:

12:40:26/~ $ Sudo docker pull fluxcapacitor/pipeline
Using default tag: latest

J'ai l'erreur suivante:

Warning: failed to get default registry endpoint from daemon (Cannot connect to 
the Docker daemon. Is the docker daemon running on this host?). Using system 
default: https://index.docker.io/v1/
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Notez que j'avais déjà suivi les réponses sur Le menu fixe Mac OS X Sudo ne peut pas se connecter au démon Docker. Le démon docker est-il en cours d'exécution sur cet hôte?

comme suit: 

docker-machine start default

12:40:36/~ $ docker-machine start default
Starting "default"...
Machine "default" is already running.

docker ps

12:41:20/~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Alors, que faut-il faire de plus?

C'est:

$ docker --version
Docker version 1.11.2, build b9f10c9

sur El Capitan.

Sortie de docker-machine env default

$ eval "$(docker-machine env default)"

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_Host="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/macuser/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
6
javadba

La commande suivante exporte quelques variables d’environnement utilisées par les commandes suivantes du menu fixe:

eval "$(docker-machine env default)"

Toutefois, si vous lancez le menu fixe avec Sudo, les variables d’environnement exportées ne sont pas accessibles par l’exécutable du menu fixe. Vous pouvez potentiellement le faire fonctionner en passant -E flag à Sudo, par exemple:

Sudo -E docker pull fluxcapacitor/pipeline

Mais l'option la plus simple consiste à utiliser le menu fixe sans racine, comme:

docker pull fluxcapacitor/pipeline
13
khattam

Vous devez définir les variables d'environnement avec:

eval "$(docker-machine env default)"

Plus à ce sujet ici .

2
Alexander Guz

J'ai aussi essayé la même chose mais je n'ai pas fonctionné.

plus tard, j'ai essayé ces étapes sur AWS CLI

$ Sudo nano /etc/docker/daemon.json
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
$ Sudo service docker restart
$ docker pull hello-world
1
Akshay Morkhandikar

J'ai eu le même problème sur mon MAC, lorsque tenté

# eval "$(docker-machine env default)"

a cette erreur

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for Host "192.168.99.100:2376": x509: certificate is valid for 192.168.99.101, not 192.168.99.100
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.

pour régénérer des certificats, découvrez les machines à sous disponibles;

# docker-machine ls

Sortie de machines fixes disponibles (autres omises)

NAME          ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default       -        virtualbox   Running   tcp://192.168.99.100:2376           Unknown   Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.99.100

Générer des certificats pour cette machine à sous par défaut

# docker-machine regenerate-certs default

et configurez ensuite docker-machine env à default docker-machine;

# eval "$(docker-machine env default)"

et cela fonctionne normalement après cela.

1
khawarizmi