English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Fondo
En algunos entornos de laboratorio, los servidores no tienen permiso para conectarse directamente a internet y necesitan usar un proxy. Generalmente configuramos el proxy de red directamente en/etc/environment,/etc/perfil y otros archivos de configuración, lo que es factible para la mayoría de las operaciones. Sin embargo, los comandos docker no utilizan estos proxies.
Por ejemplo, al descargar una imagen desde internet con docker pull, puede aparecer el siguiente error:
$ docker pull hola-mundo No se pudo encontrar la imagen 'hola-mundo:latest' localmente Descargando el repositorio docker.io/biblioteca/hola-mundo docker: Se agotó el tiempo de conexión de red mientras intentaba conectarse a https://index.docker.io/v1/repositorios/biblioteca/hola-mundo/images. Es posible que desee verificar su conexión a internet o si está detrás de un proxy.. Ver 'docker run --ayuda'.
ps: Este artículo se escribió en Ubuntu16.04pruebas pasaron.
Solución uno:
Detener el servicio docker, manualmente para usar2375Iniciar el daemon docker escuchando en todos los interfaces de red.
$ systemctl stop docker.service $ nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
Solución dos:
edite el archivo de configuración, en Ubuntu es/etc/default/docker, en CentOS es/etc/sysconfig/docker. Sin embargo, modificar estos dos archivos para configurar el daemon ya se desalienta. No se recomienda usar este método.
HTTP_PROXY="http://[proxy-[proxy-port]/" HTTPS_PROXY="https://[proxy-[proxy-port]/" export HTTP_PROXY HTTPS_PROXY
Solución tres:
Este método es persistente, las modificaciones se aplicarán permanentemente. Este método sobrescribe el archivo docker.service predeterminado.
1. Crear un directorio systemd嵌入式 para el servicio docker
$ mkdir -p /etc/systemd/system/docker.service.d
2. Crear/etc/systemd/system/docker.service.d/http-proxy.conf archivo, y agregue el variable de entorno HTTP_PROXY.-[addr] y [proxy-port] cambie a la dirección y el puerto reales del proxy:
[Service] Environment="HTTP_PROXY=http://[proxy-[proxy-port]/"HTTPS_PROXY=https://[proxy-[proxy-port]/"
3. Si hay registros internos de Docker que no necesitan usar proxy para acceder, entonces necesitas establecer el variable de entorno NO_PROXY:
[Service] Environment="HTTP_PROXY=http://[proxy-[proxy-port]/"HTTPS_PROXY=https://[proxy-[proxy-port]/"NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
4. Actualizar la configuración:
$ systemctl daemon-reload
5. Reiniciar el servicio Docker:
$ systemctl restart docker
Esto es todo el contenido del artículo, espero que sea útil para su aprendizaje y que todos los demás apoyen el tutorial de gritos.
Declaración: El contenido de este artículo se ha obtenido de la red, pertenece a los autores originales, el contenido se ha contribuido y subido por los usuarios de Internet de manera autónoma. Este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @ para denunciar y proporcione evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)