532 votes

Impossible de se connecter au démon Docker sur macOS

Je préfère normalement gérer mes applications sur mon OSX avec brew.

Je suis capable d'installer docker, docker-compose et docker-machine.

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

Je n'ai pas téléchargé et exécuté l'application "Docker pour Mac".

Cependant, lorsque j'essaie d'exécuter

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

J'ai déjà vérifié le fichier sock

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

J'ai également essayé cette solution proposée : Mac OS X sudo docker Impossible de se connecter au démon Docker. Le démon Docker fonctionne-t-il sur cet hôte ?

Mais j'ai reçu ce message d'erreur :

$ eval $(docker-machine env default)
Host does not exist: "default"

Est-il possible de faire fonctionner un service Docker avec des outils en ligne de commande ?

17 votes

Lancez l'application Docker à partir du Launchpad, une boîte de dialogue s'affichera demandant que pour exécuter l'application, il est nécessaire d'accorder certains privilèges pour cette application, après cela, le Docker est de retour au jeu.

0 votes

Dans mon cas, il y avait un autre utilisateur connecté, d'où l'échec. Déconnectez l'autre utilisateur et cela a fonctionné.

971voto

friederbluemle Points 796

Sur un Mac compatible, exécutez :

brew install --cask docker

Ensuite, lancez le Docker app. Cliquez sur suivant. Il vous sera demandé un accès privilégié. Confirmez. Une icône de baleine devrait apparaître dans la barre supérieure. Cliquez dessus et attendez que le message "Docker is running" apparaisse.

Vous devriez être en mesure d'exécuter docker commande maintenant :

docker ps

Comme docker est un paquetage au niveau du système, vous ne pouvez pas l'installer en utilisant brew install et doit utiliser --cask à la place.

Remarque : cette solution ne fonctionne que pour les Mac dont le processeur prend en charge la virtualisation, ce qui peut ne pas inclure les anciens Mac.

29 votes

Cela devrait être la réponse acceptée. Allez sur la rampe de lancement après l'installation et cherchez docker.

72 votes

J'ai fait un brew install docker et l'application n'était pas installée jusqu'à ce que je lance la commande brew cask install docker. Merci !

4 votes

Que se passe-t-il si la commande ne fonctionne toujours pas, même après l'installation de cask (et que Docker whale montre qu'il est en cours d'exécution après le mot de passe donné) ?

276voto

kenorb Points 2464

Sur macOS, le docker Le binaire n'est qu'un client et vous ne pouvez pas l'utiliser pour exécuter le démon Docker, car le démon Docker utilise des fonctionnalités du noyau spécifiques à Linux, et vous ne pouvez donc pas exécuter Docker en mode natif dans OS X. Vous devez donc installer docker-machine afin de créer une VM et de l'attacher.

Installer docker-machine sur macOS

Si vous n'avez pas docker-machine Si vous n'avez pas encore reçu la commande, installez-la en utilisant l'une des méthodes suivantes :

  • Utilisation de Brew commandement : brew install docker-machine docker .
  • Manuellement à partir de Page des communiqués :

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine

Voir : Démarrez avec Docker pour Mac .

Installer Virtualbox

docker-machine repose sur l'installation de VirtualBox et échouera si ce n'est pas le cas. Si vous avez déjà VirtualBox, vous pouvez sauter cette étape.

  • Utilisation de Homebrew : brew cask install virtualbox
  • En utilisant manuellement les déclencheurs sur Virtualbox.org

Vous devrez accepter activement le chargement de l'extension du noyau Virtualbox dans le panneau de sécurité d'OS X, puis procéder à l'opération suivante redémarrer la machine pour que les commandes suivantes n'échouent pas avec Error: VBoxNetAdpCtl: Error while adding new interface

Configurer docker-machine sur macOS

Créer un default (si vous n'en avez pas, voir : docker-machine ls ) :

docker-machine create --driver virtualbox default

Ensuite, configurez l'environnement pour le client Docker :

eval "$(docker-machine env default)"

Puis vérifiez à nouveau en dressant la liste des conteneurs :

docker ps

Voir : Démarrer avec Docker Machine et une VM locale .


En rapport :

26 votes

Ceci devrait être la réponse acceptée. Elle explique clairement a) pourquoi cela ne fonctionne pas, b) les instructions pour le faire fonctionner sans télécharger l'interface utilisateur sur OSX et c) les liens de référence pour une lecture plus approfondie.

1 votes

J'ai également dû installer virtualbox pour que les commandes de docker-machine fonctionnent : brew cask install virtualbox

1 votes

Pour démarrer un docker-machine lors de la connexion, utilisez brew services start docker-machine ou, si vous ne voulez pas utiliser Homebrew, consultez la section "Démarrer les machines locales au démarrage" de cette page (inclut des instructions pour Mac).

51voto

Master p Points 436

J'ai eu ce même problème et je l'ai résolu en suivant les étapes suivantes :

docker-machine restart

Quittez le terminal (ou iTerm2, etc, etc) et redémarrez.

eval $(docker-machine env default)

J'y ai également répondu ici

2 votes

L'évaluation devrait suffire :)

18voto

M. Mahmood Points 194

Essayez ceci pour créer un défaut.

docker-machine create default

5 votes

Cela me donne juste ... docker-machine create default Creating CA : /Users/stens/.docker/machine/certs/ca.pem Création du certificat du client : /Users/stens/.docker/machine/certs/cert.pem Exécution des contrôles de pré-création... Erreur avec la vérification de pré-création : "VBoxManage non trouvé. Assurez-vous que VirtualBox est installé et que VBoxManage est dans le chemin" .... qui semble erroné puisque VirtualBox n'est plus nécessaire pour exécuter Docker sur osx

0 votes

Il semble que vous puissiez utiliser xhyve également, voir stackoverflow.com/a/42419979/32453 ou simplement installer virtualbox :)

0 votes

Et alors quoi ?

11voto

Scott Stensland Points 993

Sous OSX, assurez-vous d'avoir lancé l'application Docker avant d'envoyer la commande

docker ps

ou docker build ... etc ... oui, il semble étrange et quelque peu trompeur que l'émission

docker --version

donne la version même si le démon docker n'est pas en cours d'exécution ... idem pour les autres commandes de version ... Je viens de rencontrer exactement les mêmes symptômes ... ce comportement sous OSX est différent de celui sous linux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X