erreur de docker: /var/run/docker.sock: aucun fichier ou répertoire de ce type


86

Je suis nouveau dans docker. J'ai un script shell qui charge des données dans impala et je veux un fichier docker qui s'exécute crée une image et exécute le conteneur. Je suis sur mac, j'ai installé boot2docker et j'ai DOCKER_HOSTconfiguré l' environnement .

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

J'essaye d'installer juste une image pré-construite en utilisant:

sudo docker pull busybox

J'obtiens cette erreur:

sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

Quelque chose ne va pas avec la configuration de mon docker?

Lorsque je fais un docker pull busybox, il extrait l'image et le téléchargement est terminé.

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

Est-ce que je manque quelque chose?


J'avais le même problème. J'ai redémarré mon ordinateur portable. donc ça a commencé à travailler pour moi. (voir docs.docker.com/installation/ubuntulinux ) Ils ont également mentionné le redémarrage de l'ordinateur.
NehaG

a travaillé pour moi quand je me suis connecté à Internet, je n'ai aucune idée de pourquoi cela s'est produit :(
Sai Ram

Réponses:


87

Vous n'avez pas besoin d'exécuter de commandes docker, car sudolorsque vous utilisez boot2docker, chaque commande transmise à la boot2dockermachine virtuelle s'exécute en tant que root par défaut.

Vous voyez l'erreur lorsque vous exécutez en tant que sudoparce que l' environnement sudon'est pas DOCKER_HOSTdéfini, seul votre utilisateur le fait.

Vous pouvez le confirmer en effectuant un:

$ env

Puis un

$ sudo env

Et à la recherche DOCKER_HOSTdans chaque sortie.

Pour ce qui est d'avoir un fichier docker qui exécute votre script, quelque chose comme celui-ci pourrait fonctionner pour vous:

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

Ensuite, vous pouvez exécuter:

docker build -t your-image-name:your-tag .

Cela construira votre image docker, que vous pouvez voir en faisant un:

docker images

Ensuite, pour exécuter votre conteneur, vous pouvez effectuer un:

docker run your-image-name:your-tag

Cette commande d'exécution démarrera un conteneur à partir de l'image que vous avez créée avec votre Dockerfileet votre commande de construction, puis elle se terminera une fois que votre script.shexécution aura terminé.


1
Désolé pour mon ignorance mais je ne pense pas avoir réussi à construire. "images docker": donne le 19/08/2014 11:11:45 Obtenir http: ///var/run/docker.sock/v1.13/images/json: composez unix /var/run/docker.sock: non tel fichier ou répertoire. Le docker doit-il être placé dans le répertoire personnel et peut-il être nommé avec n'importe quel nom? Est-ce la même chose que "image-name"?
user1189851

Pouvez-vous coller la commande que vous utilisez pour créer l'image docker? Il semble que vous utilisez toujours sudo sur votre machine OSX alors que vous ne devriez pas l'être.
Chris McKinnel

$ docker build -t / Utilisateurs / ig / Documents / tests / hellodocker. 2014/08/19 11:18:09 Nom d'espace de noms non valide (), seuls [a-z0-9_] sont autorisés, taille entre 4 et 30; et hellodocker a juste le contenu du fichier docker que vous avez donné. Merci beaucoup.
user1189851

Ouais, vous essayez de marquer votre image docker avec un chemin de fichier - essayez autre chose après -tcomme your-image-name:a-tag.
Chris McKinnel

Pourriez-vous me donner la ligne de commande, pls. Je dérange quelque chose. mon fichier docker est hellodocker et le chemin est donné ci-dessus.
user1189851

45

Vous pouvez rapidement configurer votre environnement en utilisant shellinit

À l'invite de commande, exécutez:

$(boot2docker shellinit)  

Cela remplira et exportera les variables d'environnement et initialisera d'autres fonctionnalités.


26

Sur mon MAC lorsque je lance boot2docker-vm sur le terminal en utilisant


boot2docker start

Je vois ce qui suit


To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://:2376

Après avoir défini ces variables d'environnement, j'ai pu exécuter la construction sans problème.

Mise à jour [2016-04-28] Si vous utilisez une des versions récentes de docker, vous pouvez le faire

eval $(docker-machine env) définira l'environnement

( docker-machine envimprimera les instructions d'exportation)


2
Vous pouvez également les ajouter à votre profil de terminal pour gagner du temps. Le vm vous informera qu'ils sont déjà définis.
Joe Susnick

25

docker pulléchouera s'il docker servicen'est pas en cours d'exécution. Assurez-vous qu'il fonctionne par

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

S'il ne fonctionne pas, vous pouvez le démarrer en

sudo service docker start

Pour Ubuntu 15 et plus, utilisez

sudo systemctl start docker


16

J'ai aussi eu cette erreur. Cependant, je n'ai pas utilisé boot2docker, mais j'ai simplement installé le docker "simple" sur Ubuntu (voir https://docs.docker.com/installation/ubuntulinux/ ).

J'ai eu l'erreur ("dial unix /var/run/docker.sock: aucun fichier ou répertoire de ce type. Essayez-vous de vous connecter à un démon compatible TLS sans TLS?") Parce que le démon docker n'était pas encore en cours d'exécution .

Sur Ubuntu, vous devez démarrer le service :

sudo service docker start

Voir aussi http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64


9

Pour boot2docker sous Windows, après avoir vu:

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: 
dial unix /var/run/docker.sock: no such file or directory.  
Are you trying to connect to a TLS-enabled daemon without TLS?

Tout ce que j'ai fait c'est:

boot2docker start
boot2docker shellinit

Cela a généré:

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

Finalement:

boot2docker ssh

Et docker fonctionne à nouveau


6

Sous Linux, exécutez d'abord sudo service docker startdans le terminal.


5

Si vous utilisez CentOS 7 et que vous avez installé Docker via yum, n'oubliez pas d'exécuter:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Cela démarrera le serveur et le redémarrera automatiquement au démarrage.


4

Pour configurer votre environnement et le conserver pour les sessions futures, vous pouvez faire:

echo 'export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

Ensuite: source ~/.bashrc

Et votre environnement sera configuré à chaque session


0

Le premier /var/run/docker.sock fait référence au même chemin dans votre machine virtuelle boot2docker. Écriture correcte pour windows /var/run/docker.sock


Pouvez-vous ajouter quelques explications ici? De plus, je pense que l'utilisateur est sur un mac.
2ps

0

Vous, peut-être pas l'OP, mais quelqu'un peut déjà avoir un répertoire appelé en /var/run/docker.sock/raison du nombre de fois que vous hackez et slash pour faire les choses correctement avec docker (en particulier noobs). Supprimez ce répertoire et réessayez.

Cela m'a aidé à le faire fonctionner sur Centos 7.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.