J'ai donc une question assez étrange avec mon installation docker:contenant Ubuntu docker ne apt-get update
Si je lance
apt-get update
intérieur par exemple un récipient debian (docker run -it --rm debian
), il échoue toujours avec l'erreur comme
Err:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Maintenant, cela semble être un problème de DNS tel que discuté dans tant d'autres messages similaires, mais ici vient mon tour sur cette question: Lorsque je tente alors de ping l'hôte
ping security.ubuntu.com
cela fonctionne parfaitement bien. Le domaine est résolu et les pings fonctionnent. par exemple.
$ docker run -it —rm debian
[email protected]:/# ping google.com
PING google.com (172.217.19.174): 56 data bytes
64 bytes from 172.217.19.174: icmp_seq=0 ttl=55 time=0.943 ms
J'ai ensuite essayé un nslookup
dans un récipient busybox (docker run -it --rm busybox
) qui fonctionne aussi parfaitement bien.
J'ai commencé à étudier cela parce que je voulais configurer nextcloud avec docker et l'interface d'administration signale que le serveur ne pouvait pas vérifier une connexion Internet active, car il ne peut pas résoudre par exemple. github.com.
Le prochain bit étonnant vient quand je me connecte ensuite au conteneur nextcloud en cours d'exécution et fais mes tests sur la ligne de commande. ping
fonctionne à nouveau bien et cette fois même apt-get update
fonctionne ?!
J'ai effectué ces tests à la fois avec ufw activé et désactivé. Même résultat
Je suis maintenant assez confus quant à ce qui se passe. Quelque chose doit être faux, soit sur mon serveur ou mon réseau autour de lui mais je ne peux pas comprendre quel pourrait être le problème.
Si quelqu'un a déjà eu un tel problème, il serait bon d'entendre votre prise/solution. Merci :)
Environnement:
Hôte: Ubuntu LTS-16.04.03
Docker: 17.09.0-ce
Mon daemon.json
:
{
"graph": "/mnt/nfs/nas/docker",
"iptables": true,
"dns": ["10.0.16.1"],
"userland-proxy": true,
"ip": "127.0.0.1"
}
// Modifier 02-10- En ce qui concerne le resolv.conf et les paramètres DNS: Oui, j'ai essayé d'omettre le champ "dns" dans le daemon.json, puis il prend juste la valeur de l'hôte resolv.conf et j'ai également essayé d'utiliser "8.8.8.8" avec le même résultat. Mon hôte resolv.conf contient:
nameserver 10.0.16.1
est votre 'apt-get update' dans votre Dockerfile ou est-ce que vous l'avez publié après le lancement d'un conteneur? Si le plus tard, il vaut mieux couper une nouvelle image docker où vous lancez cela au début du Dockerfile et rebondir le conteneur pour ramasser le dernier ... si le premier affiche le contenu de votre Dockerfile avant d'appeler 'apt-get update ' –
@ScottStensland Je lance la commande après avoir lancé un conteneur avec' docker run -it --rm debian'. Je voulais juste inspecter certains fichiers dans un volume docker donc j'ai pensé que je le connecterais à un conteneur ubuntu de base et installer les outils necessry temporairement. – Traspler
évitez de mettre à jour un conteneur ... traitez-le en lecture seule ... si vous devez déployer une modification, faites tourner un remplacement –