error de docker: /var/run/docker.sock: no existe tal archivo o directorio

86

Soy nuevo en Docker. Tengo un script de shell que carga datos en impala y quiero un archivo de ventana acoplable que se ejecuta, crea una imagen y ejecuta el contenedor. Estoy en Mac, instalé boot2docker y tengo el DOCKER_HOSTenv configurado.

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]

Estoy tratando de instalar una imagen prediseñada usando:

sudo docker pull busybox

Me sale este error:

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

¿Hay algún problema con la configuración de mi ventana acoplable?

Cuando hago un docker pull busybox, extrae la imagen y la descarga está completa.

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

¿Me estoy perdiendo de algo?

usuario1189851
fuente
Yo estaba teniendo el mismo problema. Reinicié mi computadora portátil. así que empezó a funcionar para mí. (ver docs.docker.com/installation/ubuntulinux ) También han mencionado reiniciar la computadora.
NehaG
funcionó para mí cuando me conecté a Internet, aunque no tengo idea de por qué sucedió :(
Sai Ram

Respuestas:

87

No es necesario que ejecute ningún comando de la ventana acoplable como sudocuando lo usa, boot2dockerya que cada comando pasa alboot2docker máquina virtual se ejecuta como root de forma predeterminada.

Estás viendo el error cuando estás ejecutando sudoporque sudono tiene elDOCKER_HOST entorno configurado, solo tu usuario lo tiene.

Puede confirmar esto haciendo un:

$ env

Entonces un

$ sudo env

Y buscando DOCKER_HOST en cada salida.

En cuanto a tener un archivo docker que ejecute su script, algo como esto podría funcionar para usted:

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

Entonces puedes ejecutar:

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

Esto creará su imagen de la ventana acoplable, que puede ver haciendo un:

docker images

Luego, para ejecutar su contenedor, puede hacer lo siguiente:

docker run your-image-name:your-tag

Este comando de ejecución iniciará un contenedor a partir de la imagen que creó con su Dockerfiley su comando de compilación y luego terminará una vez que script.shhaya terminado de ejecutarse.

Chris McKinnel
fuente
1
Perdón por mi ignorancia, pero no creo que haya logrado construir. "docker images": da 2014/08/19 11:11:45 Obtener http: ///var/run/docker.sock/v1.13/images/json: dial unix /var/run/docker.sock: no dicho archivo o directorio. ¿Se debe colocar la ventana acoplable en el directorio de inicio y se puede nombrar con cualquier nombre? ¿Es lo mismo que "nombre-imagen"?
user1189851
¿Puedes pegar el comando que estás usando para crear la imagen de la ventana acoplable? Parece que todavía estás usando sudo en tu máquina OSX cuando no deberías.
Chris McKinnel
$ docker build -t / Users / ig / Documents / tests / hellodocker. 2014/08/19 11:18:09 Nombre de espacio de nombres no válido (), solo se permiten [a-z0-9_], tamaño entre 4 y 30; y hellodocker solo tiene el contenido del dockerfile que proporcionaste. muchas gracias.
user1189851
Sí, está intentando etiquetar la imagen de su ventana acoplable con una ruta de archivo; intente algo más después de Me -tgusta your-image-name:a-tag.
Chris McKinnel
¿Podría darme la línea de comando, por favor? Estoy arruinando algo. mi archivo de Docker es hellodocker y la ruta se da arriba.
user1189851
45

Puede configurar rápidamente su entorno utilizando shellinit

En su símbolo del sistema, ejecute:

$(boot2docker shellinit)  

Eso completará y exportará las variables de entorno e inicializará otras características.

user848337
fuente
26

En mi MAC cuando inicio boot2docker-vm en el terminal usando


boot2docker start

Veo lo siguiente


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

Después de configurar estas variables de entorno, pude ejecutar la compilación sin el problema.

Actualización [2016-04-28] Si está utilizando las versiones recientes de Docker, puede hacerlo

eval $(docker-machine env) establecerá el ambiente

( docker-machine envimprimirá las declaraciones de exportación)

Jerome Anthony
fuente
2
También puede agregarlos a su perfil de terminal para ahorrar tiempo. La máquina virtual le informará que ya están configurados.
Joe Susnick
25

docker pullfallará si docker serviceno se está ejecutando. Asegúrese de que esté funcionando

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

Si no se está ejecutando, puede iniciarlo

sudo service docker start

Para Ubuntu 15 y superior, use

sudo systemctl start docker

Harikrishnan
fuente
16

También recibí este error. Sin embargo, no usé boot2docker, solo instalé la ventana acoplable "simple" en Ubuntu (consulte https://docs.docker.com/installation/ubuntulinux/ ).

Recibí el error ("marcar unix /var/run/docker.sock: no existe ese archivo o directorio. ¿Está intentando conectarse a un demonio habilitado para TLS sin TLS?") Porque el demonio de la ventana acoplable no se estaba ejecutando aún .

En Ubuntu, necesitas iniciar el servicio :

sudo service docker start

Véase también http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64

Jörg
fuente
9

Para boot2docker en Windows, después de ver:

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?

Todo lo que hice fue:

boot2docker start
boot2docker shellinit

Eso generó:

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

Finalmente:

boot2docker ssh

Y Docker vuelve a funcionar

VonC
fuente
6

En Linux, en primer lugar, ejecutar sudo service docker starten terminal.

Mohsen Kashi
fuente
5

Si está utilizando CentOS 7 y ha instalado Docker a través de yum, no olvide ejecutar:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Esto iniciará el servidor, así como lo reiniciará automáticamente al arrancar.

Lee Benson
fuente
4

Para configurar su entorno y conservarlo para futuras sesiones, puede hacer lo siguiente:

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

Entonces: source ~/.bashrc

Y su entorno se configurará en cada sesión

Teniente
fuente
0

El primer /var/run/docker.sock se refiere a la misma ruta en su máquina virtual boot2docker. Escriba correctamente para windows /var/run/docker.sock

M. Dicon
fuente
¿Puedes agregar alguna explicación más aquí? Además, creo que el usuario está en una Mac.
2ps
0

Usted, tal vez no sea el OP, pero alguien puede tener un directorio llamado /var/run/docker.sock/ debido a la cantidad de veces que hack y barra para hacer las cosas bien con Docker (especialmente noobs). Elimina ese directorio y vuelve a intentarlo.

Esto me ayudó en mi camino para hacer que funcione en Centos 7.

pjammer
fuente