paquetes mac librerias instalar entorno crear como actualizar python docker pip fig

python - mac - instalar pip en windows 10



No se pueden instalar paquetes pip dentro de un contenedor acoplable con Ubuntu (16)

Estoy siguiendo la guía de fig para usar Docker con una aplicación de Python, pero cuando Docker se pone al día con el comando

RUN pip install -r requirements.txt

Me sale el siguiente mensaje de error:

Step 3 : RUN pip install -r requirements.txt ---> Running in fe0b84217ad1 Collecting blinker==1.3 (from -r requirements.txt (line 1)) Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by ''ProtocolError(''Connection aborted.'', gaierror(-2, ''Name or service not known''))'': /simple/blinker/

Esto se repite varias veces y luego recibo otro mensaje:

Could not find any downloads that satisfy the requirement blinker==1.3 (from -r requirements.txt (line 1)) No distributions at all found for blinker==1.3 (from -r requirements.txt (line 1))

Entonces, por alguna razón, pip no puede acceder a ningún paquete desde el interior de un contenedor acoplable. ¿Hay algo que deba hacer para permitirle el acceso a Internet?

Sin embargo, pip funciona bien para instalar cosas fuera del contenedor acoplable, y funcionó bien incluso con ese paquete exacto ( blinker==1.3 ), por lo que ese no es el problema. Además, este problema no es específico de ese paquete. Tengo el mismo problema con cualquier comando de pip install para cualquier paquete.

¿Alguien tiene alguna idea de lo que está pasando aquí?


ok, reiniciar mi máquina acoplable está resolviendo el problema. gracias - ismailsunni

Esta fue la solución para mí:

docker-machine restart <machine-name>


Para usuarios de Ubuntu

Debe agregar nuevas direcciones DNS en la configuración de Docker

--dns 10.252.252.252 --dns 10.253.253.253

Agregue el dns después de ExecStar.

ExecStart=/usr/bin/dockerd -H fd:// --dns 10.252.252.252 --dns 10.253.253.253

Debería verse así:

systemctl daemon-reload sudo service docker restart

Entonces hazlo:

docker build --network=host -t image_name .

Deberia trabajar.


Como novato en Docker, tuve un problema que se manifestó de esta manera cuando seguía el tutorial para Docker en:

https://docs.docker.com/get-started/part2

Estoy usando Docker 17.03.1-ce en una LAN corporativa.

Verifiqué y verifiqué mi configuración de DNS. Había usado varias formas de configurar el DNS que había encontrado en mis búsquedas en Internet. Algunos causaron errores en el inicio. El enfoque que finalmente decidí para configurar el DNS fue el de la sección Solucionar problemas de Linux del enlace anterior donde el DNS se configura a través del archivo daemon.json en el directorio / etc / docker.

Sin embargo, todavía tenía este mismo problema. Lo que finalmente resolvió el problema para mí fue la configuración del proxy a través de las variables de entorno http_proxy y https_proxy . Los tenía especificados en mi Dockerfile, pero olvidé hacerlo antes del comando RUN pip.

Aunque parecía ser un problema de DNS, mover estos comandos ENV antes que el comando RUN marcó la diferencia para mí. En caso de que sea útil para cualquier persona con este problema.


Déjalo correr. A veces, pypi tiene problemas de conexión que se le ponen ruidosamente en la cara para hacerle pensar que está roto. Solo para estar seguro, déjelo rodar, es posible que lo resuelva por sí mismo.

El resultado final, a pesar de estas líneas rojas de error, es "Construido con éxito"

version: 3.4 service: my-app build: context: . network: host


En caso de que alguien esté leyendo esto usando docker-compose. Logré resolver esto cambiando mi archivo yaml de la siguiente manera

RUN pip install -r /app/requirements.txt --proxy=http://user:pass@addr:port

que es equivalente a escribir

{ "dns": ["the DNS ip from step1"] } Restart docker: sudo service docker restart


En mi caso, con docker version 1.13.0 y docker-machine 0.9.0 en Ubuntu 16.04 tuve que modificar ligeramente la respuesta de Tanzaho (2. Modificación de la configuración de Docker) de la siguiente manera:

  1. Inicie sesión en Ubuntu como usuario con privilegios de sudo.

  2. Abra el archivo / etc / default / docker para editarlo:

    sudo vim /etc/default/docker

  3. Agregue la siguiente configuración para Docker.

    DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

  4. Guarde y cierre el archivo.

  5. Reinicia el demonio Docker:

    sudo service docker restart


La configuración de Docker DNS a Google DNS (8.8.8.8) o 10.0.0.2 no funcionó en el entorno de mi empresa.

En ejecución: $ drill @ 8.8.8.8 www.amazon.com o @ 10.0.0.2 confirmó esto.

Para encontrar un DNS que funcionara, ejecuté: $ drill www.amazon.com y me dio la IP de DNS que se está utilizando en mi red.

Luego lo configuré en Ubuntu usando el siguiente paso para configurar el DNS de Docker.

Se cambió dns en /etc/docker/daemon.json

docker build . --network host


Necesitaba agregar --network = host a mi comando de construcción docker:

sudo nano /lib/systemd/system/docker.service


No sé la razón, pero el error significa que pip está tratando de resolver /simple/blinker/ como un nombre de host DNS en lugar de la parte pypi.python.org , lo que parece muy extraño ya que ni siquiera puedo encontrar ninguna URL para lo cual urlparse podría devolver una cadena como parte del nombre de host. Comprobaría si hay algún problema con ~/.pip/pip.conf


Para mí, fue causado por estar conectado a la VPN de mi universidad. Desconectar "resuelto" el problema.


Para mí, no pude instalar pip debido a que el DNS de la ventana acoplable no está configurado correctamente. He intentado los pasos anteriores, sin embargo, configurar el Docker DNS a Google DNS no funciona para mi computadora portátil. El DNS de Docker se puede configurar correctamente solo si configuro su DNS a la IP asignada de mi computadora portátil.

Si usa Ubuntu, puede seguir los siguientes pasos para configurar el DNS de su acoplador:

  1. Descubra la IP asignada de su dispositivo. Puedes encontrar esto por cualquiera

    • Comprobando el addr inet de su ethernet o wlan en ifconfig
    • Elegir cualquier dirección en nmcli dev show | grep ''DNS'' nmcli dev show | grep ''DNS''
  2. Edite dns en /etc/docker/daemon.json (cree este archivo si no existe anteriormente)

    { "dns": ["your_ip_in_step_1"] }

  3. Reiniciar Docker: sudo service docker restart


Para mí, simplemente reiniciar Docker Daemon me ayudó.

service docker restart


Soy nuevo en Docker y probé todos los métodos mencionados aquí, pero aún no lo hice bien. la versión de Docker era 18, y la versión de ubuntu era 16. Probé este método: - Primero construí Docker con la red de internet de la compañía. esta red está bloqueando algunos sitios o de qué manera las cosas no salieron bien aquí. En segundo lugar, me conecté a mi propia red (que estoy usando en un teléfono móvil, por ejemplo) y probé. Las cosas salieron bien. require.txt se instaló correctamente y docker se compiló.


Su problema proviene del hecho de que Docker no está utilizando el servidor DNS adecuado. Puedes arreglarlo de tres maneras diferentes:

1. Agregar Google DNS a su configuración local

Modificando /etc/resolv.conf y agregando las siguientes líneas al final

# Google IPv4 nameservers nameserver 8.8.8.8 nameserver 8.8.4.4

Si desea agregar otros servidores DNS, eche un vistazo here .

Sin embargo, este cambio no será permanente (ver este hilo ). Para hacerlo permanente: $ sudo nano /etc/dhcp/dhclient.conf Elimine el comentario y edite la línea con el servidor de prepend domain-name-servers 8.8.8.8, 8.8.4.4;

Reinicie dhclient: $ sudo dhclient .

2. Modificación de la configuración de Docker

Como se explica en los documentos :

Los sistemas que ejecutan Ubuntu o un derivado de Ubuntu en el escritorio generalmente usan 127.0.0.1 como el servidor de nombres predeterminado en el archivo /etc/resolv.conf.

Para especificar un servidor DNS para uso de Docker:

1. Log into Ubuntu as a user with sudo privileges. 2. Open the /etc/default/docker file for editing : $ sudo nano /etc/default/docker 3. Add the following setting for Docker. DOCKER_OPTS="--dns 8.8.8.8" 4. Save and close the file. 5. Restart the Docker daemon : $ sudo systemctl restart docker

3. Usando un parámetro cuando ejecuta Docker

Cuando ejecute Docker, simplemente agregue el siguiente parámetro: --dns 8.8.8.8


Tuve el mismo problema y me atormentó por un tiempo y probé muchas soluciones en línea, pero fue en vano. Sin embargo, finalmente lo resolví de la siguiente manera:

Corriendo:

Ubuntu 16.04 docker Server 18.03.0-ce

  1. Descubra la dirección de su servidor DNS.

    Descubra la dirección de su servidor DNS ejecutando el siguiente comando:

    $: nmcli dev show | grep ''IP4.DNS'' IP4.DNS[1]: 192.168.210.2

  2. Actualiza el demonio Docker

    Cree un archivo de configuración de docker en /etc/docker/daemon.json. ( si aún no tiene uno ) y agregue el siguiente contenido al archivo:

    { "dns": ["192.168.210.2", "8.8.8.8"] }

    El primer elemento de la matriz es el servidor DNS de su red y el segundo es el servidor DNS de Google como alternativa cuando el DNS de su red no está disponible.

    Guarde el archivo y luego reinicie el servicio acoplable

    $: sudo service docker restart


Tuve el mismo problema. La causa del error es proxy.

Entonces, edito Dockerfile siguiendo

$ docker build . Sending build context to Docker daemon 2.048 kB Step 1 : FROM docker-registry.aws.example.com:5000/cmcrc/python2:20160517120608 ---> 1e5034711aa9 Step 2 : RUN pip install prometheus-client requests ---> Running in f3c580fc93ae Collecting prometheus-client Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe15a1d8610>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/prometheus-client/ Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe15a1d87d0>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/prometheus-client/ Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe15a1d8990>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/prometheus-client/ Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe15a1d8b50>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/prometheus-client/ Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe15a1d8d10>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/prometheus-client/ Downloading prometheus_client-0.0.13.tar.gz Collecting requests Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe159e9d4d0>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/requests/ Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe159e9da10>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/requests/ Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe159e9dc50>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/requests/ Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe159e9de10>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/requests/ Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by ''NewConnectionError(''<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7fe159e9dfd0>: Failed to establish a new connection: [Errno -2] Name or service not known'',)'': /pypi/requests/ Downloading requests-2.10.0-py2.py3-none-any.whl (506kB) Building wheels for collected packages: prometheus-client Running setup.py bdist_wheel for prometheus-client: started Running setup.py bdist_wheel for prometheus-client: finished with status ''done'' Stored in directory: /root/.cache/pip/wheels/04/94/f5/b803b2ff65e8344e99ca99b7f7cb8194224017167809a32b78 Successfully built prometheus-client Installing collected packages: prometheus-client, requests Successfully installed prometheus-client-0.0.13 requests-2.10.0 ---> 19c5e3cfe08f Removing intermediate container f3c580fc93ae Successfully built 19c5e3cfe08f