problema con docker

32

Estoy tratando de aprender sobre "Docker" en ubuntu 15.04.

Cuando doy cualquier comando usando docker como "docker run image", aparece el siguiente error:

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

No entiendo que significa.

rishi kant
fuente
55
Recibí este mensaje de error y luego comencé el demonio con sudo service docker start. Entonces pude correr sudo docker run hello-world. Buena suerte.
shellter

Respuestas:

31

Hay dos posibles razones por las que aparece este error:

  1. El demonio Docker no se está ejecutando. Puedes verificar eso con sudo /etc/init.d/docker status.

  2. El demonio Docker se está ejecutando pero está configurado para no escuchar /var/run/docker.sock. Puede verificar /etc/default/dockersi -Hse especifica alguna opción en DOCKER_OPTS.

Andreas Veithen
fuente
3
+1. Solo tenía que usarlo $ sudo service docker statusdesde que lo recibí$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS
Después de ejecutar sudo /etc/init.d/docker status, reconocí que el servicio de docker estaba inactivo. Corrí sudo /etc/init.d/docker start, luego pude ejecutar mi imagen acoplable.
Halil
Parece que / etc / default / docker ya no es útil en systemd (Ubuntu 16.04+). Por cierto en systemd, la forma canónica de verificar el estado del demonio sería sudo systemctl status docker.
Pablo A
38

Después de instalar Docker, se le solicita que agregue su usuario al grupo de Docker. Simplemente ejecute el comando que se muestra:

sudo usermod -aG docker $USER

Deberá cerrar su sesión e iniciar sesión nuevamente para que el cambio surta efecto.

Samoht
fuente
Probablemente el más simple. No sé si funciona, aunque la respuesta (utilizada @ decebal).
Yair Daon
No recibí este aviso. Estoy en Raspberry Pi.
IgorGanapolsky
Para agregarse más tarde al grupo acoplable, ejecute sudo usermod -a -G docker <user>. Ver aquí para más información.
Hugh W
3
Énfasis en "cierre su sesión" - ¡gracias!
Dolan Antenucci
En Ubuntu 18.04 con Gnome, tuve que reiniciar el sistema para que esto funcione. Simplemente cerrar sesión y volver a ingresar no funcionó: /
Zoltán
15

Intente reiniciar su sistema operativo después de instalar Docker para aplicar permisos de grupo, si su usuario se unió al grupo de Docker.

Actualizar:

Cuando Docker instala en ubuntu 14.04, el instalador recomienda lo que su usuario agrega al grupo Docker para acceder al Servicio Docker.

Mirar

El demonio docker se une a un socket Unix en lugar de a un puerto TCP. Por defecto, el socket de Unix es propiedad del usuario root y otros usuarios pueden acceder a él con sudo. Por esta razón, Docker Daemon siempre se ejecuta como usuario root. Para evitar tener que usar sudo cuando usa el comando docker, cree un grupo Unix llamado docker y agréguele usuarios. Cuando se inicia el dacker de Docker, el grupo de Docker hace que la propiedad del socket Unix sea leída / editable.

fuente: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group

MURATSPLAT
fuente
2
Deberías explicar por qué esto ayudará.
guntbert
1
@guntbert He actualizado mi respuesta ..
MURATSPLAT
@MURATSPLAT, qbi, gunbert Gracias, encuentro la solución
rishi kant
Para que el permiso de grupo cambie el efecto. No necesita reiniciar. cerrar sesión es suficiente.
Tim Wu
@TimWu En Ubuntu 18.04 con Gnome, tuve que reiniciar el sistema; simplemente cerrar sesión y volver a iniciarla no funcionó: /
Zoltán
10

intente usar sudo docker imagespara verificar si hay un contenedor llamado <image>en su host.

Running docker run <image>iniciará un contenedor llamado <image>en su computadora host, si su computadora host no tiene este contenedor, entonces Docker extraerá automáticamente un contenedor llamado '' desde el centro de repositorio al igual que la forma en que se ejecuta docker pull <image>. Luego, si aún no puede encontrar una imagen llamada '', mostrará este mensaje de error.

puede intentar reemplazar para hello-worldver si Docker está funcionando en su computadora.

sudo docker run hello-world

Además, debe verificar si debe usar sudo.

realhu
fuente
2
Si el problema fue que el OP no está usando sudo, entonces el mensaje de error habría sido "permiso denegado" en lugar de "no existe tal archivo o directorio".
Andreas Veithen
1
Sí, tienes razón. Lo intenté, si el usuario no tiene el permiso, el mensaje de error sería:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu
2
intenta otorgar permisossudo usermod -a -G docker ec2-user
AB
4

Este artículo me pareció útil: https://docs.docker.com/articles/systemd/ ; Lo ejecuté en múltiples entornos y trabajé, espero que también te ayude

Decebal
fuente
Las respuestas de solo enlace no se consideran aceptables. Desarrolla tu respuesta para que sea completa.
Flimzy
2
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Mitch
1
Ese enlace systemd parece estar muerto. Aquí hay otro enlace docs.docker.com/engine/admin/systemd
wsams
2

Recibí un mensaje similar al intentar extraer una imagen. Acabo de hacer el sudo suy luego pude sacar la imagen con éxito.

Omar Ahmed
fuente
2
Bienvenido a Ask Ubuntu! Recomiendo editar esta respuesta para expandirla con detalles específicos sobre cómo hacerlo. (Consulte también ¿Cómo escribo una buena respuesta? Para obtener consejos generales sobre qué tipos de respuestas se consideran más valiosas en Ask Ubuntu). Sin embargo, tenga en cuenta que ejecutar Docker como superusuario ya se ha sugerido varias veces.
David Foerster
Tengo la solución de mi problema.
rishi kant