Moby: resolv.conf no existe tal archivo o directorio

Creado en 26 mar. 2014  ·  17Comentarios  ·  Fuente: moby/moby

Acabo de dejar de instalar Docker en ubuntu 12.04 de esta guía:
http://docs.docker.io/en/latest/installation/ubuntulinux/
y tengo esto

➜ ~ sudo docker run -i -t ubuntu / bin / bash
2014/03/26 11:45:17 Error: abrir /etc/resolv.conf: no existe tal archivo o directorio

¿alguna sugerencia?

arenetworking kinbug

Comentario más útil

Experimento este problema y parece ser un efecto secundario de la configuración de NetworkManager en mi distribución, Sabayon Linux.

En mi caso, /etc/resolv.conf es un enlace simbólico a /etc/resolvconf/run/resolve.conf y solo se crea después de que NetworkManager se conecta a una red. Esto hace que Docker no se inicie en el arranque, pero comienza bien después de iniciar sesión y conectarme a una red.

Todos 17 comentarios

Problema con su máquina host. Cree /etc/resolv.conf y rellénelo con la información de DNS adecuada y vuelva a intentar el comando.

Este no es un error de Docker, es un problema causado por la ausencia de /etc/resolv.conf en su host. Puedo reproducir el problema cuando no hay resolv.conf en el host.

Repare su sistema Linux.

En mi humilde opinión, el archivo no es necesario, ¿verdad? Por lo tanto, no debería tratarse de un sistema operativo roto.
http://man7.org/linux/man-pages/man5/resolv.conf.5.html

Si este archivo no existe, solo se consultará el servidor de nombres en la máquina local;

En ese caso, el servidor DNS debería estar ejecutándose en su máquina local.

Experimento este problema y parece ser un efecto secundario de la configuración de NetworkManager en mi distribución, Sabayon Linux.

En mi caso, /etc/resolv.conf es un enlace simbólico a /etc/resolvconf/run/resolve.conf y solo se crea después de que NetworkManager se conecta a una red. Esto hace que Docker no se inicie en el arranque, pero comienza bien después de iniciar sesión y conectarme a una red.

@OOPMan En su script de inicio, ¿no debería depender de que NetworkManager esté activo antes de que se inicie el servicio de Docker?

También me pregunto si esto debería ser un problema de Go upstream (específicamente "netgo") - ¿realmente verificamos resolv.conf directamente, o solo indirectamente a través de la implementación de netgo?

Me di cuenta de que mi problema no tiene nada que ver con NM o Sabayon Linux :-)

Estoy usando un Asus X550CC. En general, es una máquina decente pero tiene una advertencia: el hardware de Wi-Fi está deshabilitado en Linux hasta que se duerme y luego se reanuda. Esto significa que al arrancar, desconectado de una LAN cableada, el sistema básicamente decide que no hay una red en funcionamiento y, por lo tanto, /etc/resolv.conf no contiene nada. A Docker no le gusta esto y, por lo tanto, no se inicia.

Una vez que he suspendido-reanudado, todo está bien y Docker se inicia.

@unclejack @crosbymichael Sigo viendo este problema hoy en la versión de Docker 1.12.6.
¿Por qué la puerta /etc/resolv.conf ejecuta contenedores de Docker?

Creo que no ha habido una buena respuesta sobre esto y como también estoy experimentando esto, estoy reabriendo. @thaJeztah, ¿ podrías hacer ping a los mantenedores de la red? En este punto, no entiendo por qué la red bloquea el inicio del contenedor (tenemos máquinas aisladas donde no hay un archivo resolv.conf pero queremos iniciar los contenedores de todos modos)

El manual resolv.conf (de glibc) dice:

   If this file does not exist, only the name server on the local
   machine will be queried; the domain name is determined from the
   hostname and the domain search path is constructed from the domain
   name.

Por lo tanto, se debe asumir que un sistema Linux sin resolv.conf es un sistema Linux válido.

Otro software, como la lógica de carga resolv.conf de DNS de golang, se ocupa de resolv.conf faltante o inaccesible de la misma manera: https://golang.org/src/net/dnsconfig_unix.go

Además, resolv.conf no es necesario en sistemas que usan módulos NSS que no son libc, como nss-resolve o winbind, ldap, etc.

/ cc @sanimej

Este error también evita el uso de Docker sin conexión en algunas distribuciones.

simplemente cree un nombre de archivo vacío 'resolv.conf' en el lugar, mi problema resuelto ~

Veo que la solución para esto se fusionó a través de https://github.com/moby/moby/commit/1ddeb11835600127a3319fc0dd3764e57ffbf521 , que se incluirá en la próxima versión 17.10; https://github.com/docker/docker-ce/blob/17.10/components/engine/vendor/github.com/docker/libnetwork/sandbox_dns_unix.go

cierre, porque esto se resuelve en el maestro 👍

¿Fue útil esta página
0 / 5 - 0 calificaciones