errore docker: /var/run/docker.sock: nessun file o directory di questo tipo


86

Sono nuovo in Docker. Ho uno script di shell che carica i dati in impala e voglio un file docker che venga eseguito per creare un'immagine ed eseguire il contenitore. Sono su Mac, ho installato boot2docker e ho DOCKER_HOSTconfigurato 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]

Sto cercando di installare solo un'immagine predefinita utilizzando:

sudo docker pull busybox

Ottengo questo errore:

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

Qualcosa non va con la mia configurazione docker?

Quando faccio un docker pull busybox, estrae l'immagine e il download è completo.

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

Mi sto perdendo qualcosa?


Stavo avendo lo stesso problema. Ho riavviato il mio laptop. quindi ha iniziato a funzionare per me. (vedi docs.docker.com/installation/ubuntulinux ) Hanno anche menzionato di riavviare il computer.
NehaG

ha funzionato per me quando mi sono connesso a Internet, non ho idea del perché sia ​​successo però :(
Sai Ram

Risposte:


87

Non è necessario eseguire alcun comando docker come sudoquando si utilizza boot2dockerpoiché ogni comando passato nella boot2dockerVM viene eseguito come root per impostazione predefinita.

Visualizzi l'errore quando esegui sudoperché sudonon ha l' DOCKER_HOSTenv impostato, solo il tuo utente lo fa.

Puoi confermarlo facendo:

$ env

Poi un

$ sudo env

E cercando DOCKER_HOSTin ogni uscita.

Per quanto riguarda un file docker che esegue lo script, qualcosa del genere potrebbe funzionare per te:

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

Quindi puoi eseguire:

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

Questo creerà la tua immagine docker, che puoi vedere eseguendo:

docker images

Quindi, per eseguire il tuo contenitore, puoi fare:

docker run your-image-name:your-tag

Questo comando di esecuzione avvierà un contenitore dall'immagine che hai creato con il tuo Dockerfilee il tuo comando di compilazione e quindi terminerà una volta script.shterminata l'esecuzione.


1
Mi dispiace per la mia ignoranza ma non credo di essere riuscito a costruire. "immagini docker": fornisce 2014/08/19 11:11:45 Ottieni http: ///var/run/docker.sock/v1.13/images/json: componi unix /var/run/docker.sock: no tale file o directory. Il docker deve essere posizionato nella directory home e può essere denominato con qualsiasi nome? È lo stesso di "nome-immagine"?
user1189851

Puoi incollare il comando che stai utilizzando per creare l'immagine docker? Sembra che tu stia ancora usando sudo sulla tua macchina OSX quando non dovresti.
Chris McKinnel

$ docker build -t / Users / ig / Documents / tests / hellodocker. 2014/08/19 11:18:09 Nome spazio dei nomi non valido (), sono consentiti solo [a-z0-9_], dimensioni comprese tra 4 e 30; e hellodocker ha solo il contenuto del file docker che hai fornito. molte grazie.
user1189851

Sì, stai cercando di taggare la tua immagine finestra mobile con un percorso di file: prova qualcos'altro dopo -tcome your-image-name:a-tag.
Chris McKinnel

Potresti darmi la riga di comando, per favore. Sto incasinando qualcosa. il mio file docker è hellodocker e il percorso è indicato sopra.
user1189851

45

Puoi configurare rapidamente il tuo ambiente usando shellinit

Al prompt dei comandi esegui:

$(boot2docker shellinit)  

Ciò popolerà ed esporterà le variabili di ambiente e inizializzerà altre funzionalità.


26

Sul mio MAC quando avvio boot2docker-vm sul terminale utilizzando


boot2docker start

Vedo quanto segue


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

Dopo aver impostato queste variabili di ambiente, sono stato in grado di eseguire la build senza il problema.

Aggiorna [2016-04-28] Se stai utilizzando una delle versioni recenti di finestra mobile puoi farlo

eval $(docker-machine env) imposterà l'ambiente

( docker-machine envstamperà le dichiarazioni di esportazione)


2
Puoi anche aggiungerli al tuo profilo terminale per risparmiare tempo. La VM ti informerà che sono già impostati.
Joe Susnick

25

docker pullfallirà se docker servicenon è in esecuzione. Assicurati che sia in esecuzione

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

Se non è in esecuzione, puoi avviarlo

sudo service docker start

Per Ubuntu 15 e versioni successive

sudo systemctl start docker


16

Ho anche ricevuto questo errore. Tuttavia , non ho usato boot2docker ma ho appena installato la docker "normale" su Ubuntu (vedi https://docs.docker.com/installation/ubuntulinux/ ).

Ho ricevuto l'errore ("componi unix /var/run/docker.sock: nessun file o directory di questo tipo. Stai cercando di connetterti a un demone abilitato per TLS senza TLS?") Perché il demone docker non era ancora in esecuzione .

Su Ubuntu, devi avviare il servizio :

sudo service docker start

Vedi anche http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64


9

Per boot2docker su Windows, dopo aver visto:

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?

Tutto quello che ho fatto è stato:

boot2docker start
boot2docker shellinit

Ciò ha generato:

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

Infine:

boot2docker ssh

E docker funziona di nuovo


6

In Linux, prima di tutto esegui sudo service docker startnel terminale.


5

Se stai usando CentOS 7 e hai installato Docker tramite yum, non dimenticare di eseguire:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Questo avvierà il server e lo riavvierà automaticamente all'avvio.


4

Per configurare il tuo ambiente e conservarlo per le sessioni future puoi fare:

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

Poi: source ~/.bashrc

E il tuo ambiente verrà configurato in ogni sessione


0

Il primo /var/run/docker.sock fa riferimento allo stesso percorso nella macchina virtuale boot2docker. Scrivi correttamente per Windows /var/run/docker.sock


Puoi aggiungere qualche altra spiegazione qui? Inoltre, penso che l'utente sia su un Mac.
2ps

0

Forse tu non sei l'OP, ma qualcuno potrebbe avere una directory chiamata /var/run/docker.sock/ già causa di quante volte hai hackerato e tagliato per sistemare le cose con docker (specialmente i noobs). Elimina quella directory e riprova.

Questo mi ha aiutato a farlo funzionare su Centos 7.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.