web-dev-qa-db-fra.com

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

Je suis nouveau au docker. J'ai un script shell qui charge les données dans impala et je veux un fichier docker qui exécute génère une image et exécute le conteneur. Je suis sur mac, j'ai installé boot2docker et ai configuré le DOCKER_Host env.

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 juste d'installer une image pré-construite en utilisant:

Sudo docker pull busybox

Je reçois 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 menu fixe?

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

85
user1189851

Vous n'avez pas besoin d'exécuter de commande de menu fixe sous le nom Sudo lorsque vous utilisez boot2docker, car chaque commande transmise au boot2docker VM s'exécute en tant que root par défaut.

Vous voyez l'erreur lorsque vous utilisez Sudo parce que Sudo n'a pas défini le DOCKER_Host env, mais uniquement votre utilisateur.

Vous pouvez le confirmer en faisant un:

$ env

Puis un

$ Sudo env

Et chercher DOCKER_Host dans chaque sortie.

Pour ce qui est du fichier docker qui exécute votre script, cela 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 .

Ceci construira votre image de menu fixe, que vous pouvez voir en effectuant un:

docker images

Ensuite, pour exécuter votre conteneur, vous pouvez effectuer les opérations suivantes:

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 Dockerfile et votre commande de construction, puis se terminera une fois que votre script.sh aura fini de s'exécuter.

87
Chris McKinnel

Vous pouvez rapidement configurer votre environnement en utilisant shellinit

À l'invite de votre commande, exécutez:

$(boot2docker shellinit)  

Cela peuplera et exportera les variables d’environnement et initialisera d’autres fonctionnalités.

45
user848337

Sur mon MAC quand 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 les dernières versions de docker, vous pouvez le faire.

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

(docker-machine env imprimera les déclarations d'exportation)

25
Jerome Anthony

docker pull échouera si docker service n'est pas en cours d'exécution. Assurez-vous qu'il tourne

:~$ 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 commencer par

Sudo service docker start

Pour Ubuntu 15 et supérieur, utilisez

Sudo systemctl start docker

24
Harikrishnan

J'ai aussi eu cette erreur. Bien que je n’ai pas utilisé boot2docker mais que je viens d’installer un menu fixe "ordinaire" sur Ubuntu (voir https://docs.docker.com/installation/ubuntulinux/ ).

J'ai eu l'erreur ("composez unix /var/run/docker.sock: aucun fichier ni répertoire de ce type. Essayez-vous de vous connecter à un démon compatible TLS sans TLS?") Car le menu fixe Le démon ne fonctionnait pas pour le moment.

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

16
Jörg

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 était:

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

9
VonC

Sous Linux, tout d'abord, exécutez Sudo service docker start dans le terminal.

6
Mohsen Kashi

Si vous utilisez CentOS 7 et que vous avez installé Docker via yum, n'oubliez pas de lancer:

$ Sudo systemctl start docker
$ Sudo systemctl enable docker

Cela va démarrer le serveur, ainsi que le redémarrer automatiquement au démarrage.

5
Lee Benson

Pour configurer votre environnement et le conserver pour les sessions futures, vous pouvez effectuer les tâches suivantes:

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

Puis: source ~/.bashrc

Et votre environnement sera configuré à chaque session

4
Lt.

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

0
M. Dicon

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

Cela m’a aidé à faire fonctionner Centos 7.

0
pjammer