Je viens de quitter pour installer docker sur ubuntu 12.04 à partir de ce guide:
http://docs.docker.io/en/latest/installation/ubuntulinux/
et j'ai ça
➜ ~ sudo docker exécuter -i -t ubuntu / bin / bash
2014/03/26 11:45:17 Erreur: ouvrir /etc/resolv.conf: aucun fichier ou répertoire de ce type
Aucune suggestion?
Problème avec votre machine hôte. Créez /etc/resolv.conf
et remplissez-le avec les informations DNS appropriées et réessayez la commande.
Ce n'est pas un bogue Docker, c'est un problème causé par l'absence de /etc/resolv.conf sur votre hôte. Je peux reproduire le problème lorsqu'il n'y a pas de resolv.conf sur l'hôte.
Veuillez réparer votre système Linux.
IMHO le fichier n'est pas nécessaire, n'est-ce pas? Donc, il ne devrait pas s'agir d'un système d'exploitation cassé.
http://man7.org/linux/man-pages/man5/resolv.conf.5.html
Si ce fichier n'existe pas, seul le serveur de noms sur la machine locale sera interrogé;
Dans ce cas, le serveur DNS doit fonctionner sur votre machine locale.
Je rencontre ce problème et cela semble être un effet secondaire de la configuration de NetworkManager sur ma distribution, Sabayon Linux.
Dans mon cas, /etc/resolv.conf est un lien symbolique vers /etc/resolvconf/run/resolve.conf et n'est créé qu'après que NetworkManager se connecte à un réseau. Cela empêche Docker de démarrer au démarrage, mais il démarre correctement après la connexion et la connexion à un réseau.
@OOPMan Dans votre script d'initialisation, ne devriez-vous pas dépendre de NetworkManager avant le démarrage du service docker?
Je me demande également si cela devrait être un problème de Go en amont (en particulier "netgo") - vérifions-nous réellement resolv.conf directement, ou seulement indirectement via l'implémentation netgo?
J'ai réalisé que mon problème n'a rien à voir avec NM ou Sabayon Linux :-)
Je cours sur un Asus X550CC. Dans l'ensemble, une machine décente mais elle a une mise en garde: le matériel Wi-Fi est désactivé sous Linux jusqu'à ce que vous dormez, puis reprenez. Cela signifie qu'au démarrage, non connecté à un LAN câblé, le système décide fondamentalement qu'il n'y a pas de réseau fonctionnel et donc /etc/resolv.conf ne contient rien. Docker n'aime pas cela et ne parvient donc pas à démarrer.
Une fois que j'ai suspendu-repris, tout va bien et Docker démarre.
@unclejack @crosbymichael Je vois encore ce problème aujourd'hui sur la version 1.12.6 de docker.
Pourquoi /etc/resolv.conf gère-t-il les conteneurs Docker?
Je pense qu'il n'y a pas eu de bonne réponse à ce sujet et comme je le vis également, je rouvre. @thaJeztah pourriez-vous
Le manuel resolv.conf (de la glibc) déclare:
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.
Par conséquent, il faut supposer qu'un système Linux sans resolv.conf est un système Linux valide.
D'autres logiciels, tels que la logique de chargement DNS resolv.conf de golang, traitent les résolv.conf manquants ou inaccessibles de la même manière: https://golang.org/src/net/dnsconfig_unix.go
De plus, resolv.conf n'est pas nécessaire sur les systèmes qui utilisent des modules NSS non-libc tels que nss-resolution ou winbind, ldap, etc.
/ cc @sanimej
Ce bogue empêche également d'utiliser docker hors ligne sur certaines distributions.
Essayer de le réparer dans: https://github.com/docker/libnetwork/pull/1847
créez simplement un nom de fichier vide 'resolv.conf' à l'endroit, mon problème est résolu ~
Je vois que le correctif pour cela a été fusionné via https://github.com/moby/moby/commit/1ddeb11835600127a3319fc0dd3764e57ffbf521 , qui sera inclus dans la prochaine version 17.10; https://github.com/docker/docker-ce/blob/17.10/components/engine/vendor/github.com/docker/libnetwork/sandbox_dns_unix.go
fermeture, car cela est résolu sur le maître 👍
Commentaire le plus utile
Je rencontre ce problème et cela semble être un effet secondaire de la configuration de NetworkManager sur ma distribution, Sabayon Linux.
Dans mon cas, /etc/resolv.conf est un lien symbolique vers /etc/resolvconf/run/resolve.conf et n'est créé qu'après que NetworkManager se connecte à un réseau. Cela empêche Docker de démarrer au démarrage, mais il démarre correctement après la connexion et la connexion à un réseau.