La actualización de Docker apt-get falla

¿Alguien puede ayudarme a get apt-get trabajar en mi contenedor docker? Cada vez que bash ejecutar cualquier command apt-get en mi contenedor de docker, el command falla. Estoy ejecutando Docker versión 1.1.1, compilation bd609d2 en ubuntu 12.04.

Cuando lo hago

$ sudo docker run -i -t ubuntu:14.04 /bin/bash # apt-get update 

Recibo errores que dicen

No se pudo resolver 'archive.ubuntu.com'

Intenté descomentar la línea siguiente en / etc / default / docker

DOCKER_OPTS = "- dns 8.8.8.8 –dns 8.8.4.4"

pero todavía no puedo hacer ping a google.com

ping: host desconocido

Confirmé que el contenedor está utilizando los serveres dns 8.8.8.8 y 8.8.4.4

root @ 0baa87fc6322: / # cat /etc/resolv.conf

nameserver 8.8.8.8

server de nombres 8.8.4.4

y puedo hacer ping a ambos serveres, así que estoy bastante seguro de que un firewall no solo deja caer mis packages.

¡Cualquier ayuda con esto sería apreciada!

¡Gracias!

¡Gracias por toda tu ayuda! Descubrí que era un problema de DNS y que era por un firewall. Después de search un poco más encontré esta pregunta que no pude encontrar mientras buscaba 'docker apt-get fail'

Docker: las llamadas de networking fallan durante la creación de la image en la networking corporativa

Su problema era similar al mío y la solución me ayudó a hacerlo funcionar. He copydo su solución para cualquiera que encuentre esta pregunta en el futuro.

Esos serveres de Google no eran accesibles desde nuestro firewall, por lo que no pudimos resolver ninguna URL.

La solución es decirle a Docker qué serveres DNS usar. Esta solución depende de cómo instaló Docker: package de Ubuntu

Si tiene instalado el package Ubuntu, edite / etc / default / docker y agregue la siguiente línea:

DOCKER_OPTS = "- dns <your_dns_server_1> –dns <your_dns_server_2>"

Puede agregar tantos serveres DNS como desee a esta configuration. Una vez que haya editado este file, querrá reiniciar su service Docker:

sudo service docker restart

Binarios

Si instaló Docker mediante el método binary (es decir, sin package), configurará los serveres DNS cuando inicie el daemon Docker:

sudo docker -d -D –dns –dns y

Primero compruebe si tiene connection, haga ping directamente a la ip 91.189.92.201 que apunta a archive.ubuntu.com :

ping 91.189.92.201

Si aún no puede comunicarse con el host, no es un problema de DNS.

Además, si tiene connection a Internet, puede hacer un hack. Solo ponga una fila en el /etc/hosts y resuelva el problema:

91.189.92.201 archive.ubuntu.com

Encuentro el problema en dos casos diferentes y la resolución fue diferente …

El primero con Win7 + virtualbox (Xubuntu 16.04) Este comentario hizo el trabajo: https://stackoverflow.com/a/29659783/2260796

Modifico el file / etc / default / docker:

DOCKER-OPTS = "- ip-masq = true –dns my_ip_dns_win –dns 8.8.8.8 –dns 8.8.4.4" Y ejecute sudo service docker restart

Segundo en un sistema operativo Xubuntu (ubuntu 16.04) La resolución precedente no fue suficiente. Este comentario hizo el trabajo: https://github.com/docker/docker/issues/1809 Tuve que comentar una línea en el file /etc/NetworkManager/NetworkManager.conf:

dns = dnsmasq

Entonces corre

sudo restart network-manager

Estoy usando la versión de Mint y después de instalar Docker e bash crear una image de Ubuntu para hacer que el command apt-get update no reconozca, para remediar el problema, lo hice.

 docker run -it -p 8080:80 ubuntu /bin/bash echo "91.189.92.201 archive.ubuntu.com" >> /etc/hosts cat /etc/hosts apt-get update