Instalé Docker en mi Ubuntu 13.10 (Saucy Salamander) y cuando escribo en mi consola:
sudo docker pull busybox
Obtuve el siguiente error:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
Versión de Docker:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
Estoy detrás de un servidor proxy sin autenticación, y este es mi /etc/apt/apt.conf
archivo:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
¿Qué estoy haciendo mal?
Acquire::socks::proxy
significa establecer el proxy para todas las URL que comienzan con unsocks
esquema. Como susources.list
no tiene ningunasocks://
URL, esa línea se ignora por completo.docker-compose
?Respuestas:
Aquí hay un enlace a la documentación oficial de Docker para el proxy HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Un resumen rápido:
Primero, cree un directorio desplegable systemd para el servicio Docker:
Ahora cree un archivo llamado
/etc/systemd/system/docker.service.d/http-proxy.conf
que agregue laHTTP_PROXY
variable de entorno:Si tiene registros internos de Docker con los que necesita ponerse en contacto sin proxy, puede especificarlos a través de la
NO_PROXY
variable de entorno:Cambios de color:
Verifique que la configuración se haya cargado:
Reiniciar Docker:
fuente
/etc/default/docker
no funciona. Tal vez debería eliminarexport
como el documentado para Centos.sudo systemctl restart docker
es estrictamente necesario para que funcione.systemctl
que no está disponible para ubuntu 14.04, se utilizaupstart
para mostrar los servicios.Su configuración de proxy APT no está relacionada con Docker.
Docker usa la variable de entorno HTTP_PROXY, si está presente. Por ejemplo:
Pero en cambio, le sugiero que eche un vistazo a su
/etc/default/docker
archivo de configuración: debe tener una línea para descomentar (y tal vez ajustar) para que la configuración de su proxy se aplique automáticamente. Luego reinicie el servidor Docker:fuente
En CentOS, el archivo de configuración para Docker está en:
Agregar la siguiente línea me ayudó a hacer que el demonio Docker funcionara detrás de un servidor proxy:
fuente
export
. ¿Estas seguro que esto es correcto?export
solo funciona en CentOS6 y sin CentOS7export HTTP_PROXY=...
es un Bashismo, para los shells que no son Bash (como lo que puede ser / bin / sh), use dos líneasHTTP_PROXY=...
y luegoexport HTTP_PROXY
Dicho eso, no necesitabaexport
nada.Si está utilizando el nuevo Docker para Mac (o Docker para Windows ), simplemente haga clic con el botón derecho en el icono de la bandeja de Docker y seleccione Preferencias (Windows: Configuración), luego vaya a Avanzado y, en Proxies, especifique allí la configuración de su proxy. Haga clic en Aplicar y reiniciar y espere hasta que Docker se reinicie.
fuente
En Ubuntu, debe configurar el http_proxy para el demonio Docker, no el proceso del cliente. Esto se hace en
/etc/default/docker
(ver aquí ).fuente
Para extender la respuesta de Arun , para que esto funcione en CentOS 7, tuve que eliminar los comandos "exportar". Entonces edita
Y añadir:
Luego reinicie Docker:
La fuente es esta publicación de blog .
fuente
¿Por qué un proxy enlazado localmente no funciona?
El problema
Si está ejecutando un proxy enlazado localmente , por ejemplo, escuchando
127.0.0.1:8989
, NO FUNCIONARÁ en Docker para Mac . De la documentación de Docker :Lo mismo es para el lado del servidor Docker. (Para comprender el lado del servidor y el lado del cliente de Docker, intente ejecutar
docker version
). Y el lado del servidor se ejecuta en una capa de virtualización que tiene la suyalocalhost
. Por lo tanto, no se conectará al servidor proxy en ellocalhost
sistema operativo host.La solución
Entonces, si está usando un proxy vinculado localmente como yo, básicamente tendría que hacer lo siguiente para que funcione con Docker para Mac:
Haga que su servidor proxy escuche en
0.0.0.0
lugar de127.0.0.1
. Precaución: necesitará una configuración de firewall adecuada para evitar el acceso malicioso.Agregue un alias de bucle invertido a la
lo0
interfaz, por ejemplo10.200.10.1/24
:Establecer HTTP y / o HTTPS proxy para
10.200.10.1:8989
de Preferencias de menú de la bandeja acoplable (Suponga que el servidor proxy está escuchando en el puerto8989
).Después de eso, pruebe la configuración del proxy ejecutando un comando en un nuevo contenedor desde una imagen que no se descarga:
Aviso: el alias de bucle invertido establecido por
ifconfig
no se conserva después de un reinicio. Hacerlo persistente es otro tema. Consulte esta publicación de blog en japonés (el Traductor de Google puede ayudar).fuente
Esta es la solución que funcionó para mí: Ubuntu, versión Docker: 1.6.2
En el archivo
/etc/default/docker
, agregue la línea:Reiniciar Docker
fuente
Para configurar Docker para que funcione con un proxy, debe agregar la variable de entorno HTTPS_PROXY / HTTP_PROXY al archivo sysconfig de Docker (
/etc/sysconfig/docker
).Dependiendo de si usa
init.d
o la herramienta de servicios, necesita agregar la declaración "exportar" (debido a los registros de informes de errores de Debian - # 767441. Los ejemplos en / etc / default / docker son engañosos con respecto a la sintaxis compatible ):El repositorio de Docker (Docker Hub) solo es compatible con HTTPS. Para que Docker funcione con proxies de interceptación SSL, debe agregar el certificado raíz del proxy al almacén de confianza del sistema.
Para CentOS, copie el archivo
/etc/pki/ca-trust/source/anchors/
y actualice el almacén de confianza de CA y reinicie el servicio Docker.Si su proxy usa la autenticación NTLMv2, debe usar proxies intermedios como Cntlm para cerrar la autenticación. Esta publicación de blog lo explica en detalle .
fuente
En la nueva versión de Docker, docker-engine , en una distribución basada en systemd , debe agregar la línea de variable de entorno a /lib/systemd/system/docker.service , como lo mencionan otros:
fuente
Después de instalar Docker, haga lo siguiente:
Luego, puede tirar o hacer cualquier cosa:
fuente
Como todavía no puedo comentar:
Para CentOS 7, necesitaba activar el EnvironmentFile dentro de "docker.service" como se describe aquí: controlar y configurar Docker con systemd .
Editar: estoy agregando mi solución como lo indicó Nilesh. Necesitaba abrir "/etc/systemd/system/docker.service" y tuve que agregar dentro de la sección
Solo entonces se cargó el archivo "etc / sysconfig / docker" en mi sistema.
fuente
Para resolver el problema con curl en Docker build, agregué lo siguiente dentro del Dockerfile:
Tenga en cuenta que la declaración ENV es ANTES de la declaración EJECUTAR.
Y para que el demonio Docker pueda acceder a Internet (uso Kitematic con boot2docker), agregué lo siguiente en
/var/lib/boot2docker/profile
:Luego reinicié Docker con
sudo /etc/init.d/docker restart
.fuente
Si uso el proxy socks5, aquí está mi prueba con Docker 17.03.1-ce con la configuración "all_proxy", y funcionó:
fuente
La solución completa para Windows, para configurar los ajustes del proxy.
Puede configurarlo directamente haciendo clic derecho en la configuración, en el icono de Docker y luego en Proxies.
Allí puede configurar la dirección proxy, el puerto, el nombre de usuario y la contraseña.
En este formato:
Ejemplo:
Nada más que esto.
fuente
Simplemente establecer variables de entorno proxy no me ayudó en la versión 1.0.1 ... Tuve que actualizar el
/etc/default/docker.io
archivo con el valor correcto para la variable "http_proxy".fuente
Si está en Ubuntu, ejecute estos comandos para agregar su proxy.
Y descomentar las líneas que especifica
Y reemplácelo con su servidor proxy apropiado y nombre de usuario.
Luego reinicie Docker usando:
Ahora puede ejecutar comandos Docker detrás del proxy:
fuente
Tal vez necesite configurar variables en minúsculas. En mi caso, mi archivo /etc/systemd/system/docker.service.d/http-proxy.conf tiene este aspecto:
¡Buena suerte! :)
fuente
También estaba enfrentando el mismo problema detrás de un firewall. Siga los pasos a continuación:
No use ni elimine el archivo https_prxoy.conf.
Vuelva a cargar y reinicie su contenedor Docker:
fuente
Si está en Ubuntu, debe ejecutar este comando:
Y vuelva a cargar Docker con:
O ve
/etc/docker.io
con nano ...fuente
En Ubuntu 14.04 (Trusty Tahr) con Docker 1.9.1, simplemente descomenté la
http_proxy
línea, actualicé el valor y luego reinicié el servicio Docker.y entonces
fuente
En RHEL6.6 solo esto funciona (tenga en cuenta el uso de
export
):/ etc / sysconfig / docker
NOTA: Ambos pueden usar el
http
protocolo).Gracias a https://crondev.com/running-docker-behind-proxy/
fuente
En mi red, Ubuntu funciona detrás de un servidor proxy ISA corporativo. Y requiere autenticación. Probé todas las soluciones mencionadas anteriormente y nada me ayudó. Lo que realmente ayudó fue escribir una línea proxy en el archivo
/etc/systemd/system/docker.service.d/https-proxy.conf
sin un nombre de dominio.En vez de
o
y algún otro reemplazo como
@ -> %40
o\ -> \\
intenté usarY funciona ahora.
fuente
Prueba esto:
fuente
Esto no responde exactamente la pregunta, pero podría ayudar, especialmente si no desea tratar con archivos de servicio.
En caso de que usted sea el que aloja la imagen, una forma es convertir la imagen como un archivo tar en su lugar, usando algo como lo siguiente en el servidor .
Simplemente descargue el archivo y vuelva a convertirlo en una imagen.
fuente