Can't install pip packages inside a docker container with Ubuntu

前端 未结 16 2218
抹茶落季
抹茶落季 2020-11-30 19:07

I\'m following the fig guide to using docker with a python application, but when docker gets up to the command

RUN pip install -r requirements.txt

相关标签:
16条回答
  • 2020-11-30 19:22

    I needed to add --network=host to my docker build command:

    docker build --network=host -t image_name .
    
    0 讨论(0)
  • 2020-11-30 19:23

    In case someone is reading this using docker-compose. I managed to resolve this by changing my yaml file as follows

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

    which is equivalent to writing

    docker build . --network host
    
    0 讨论(0)
  • 2020-11-30 19:23

    For me, it was caused by being connected to my university VPN. Disconnecting "solved" the problem.

    0 讨论(0)
  • 2020-11-30 19:24

    Configuring docker DNS to Google DNS (8.8.8.8) or 10.0.0.2 did not work in my company environment.

    Running: $ drill @8.8.8.8 www.amazon.com or @10.0.0.2 confirmed this.

    In order to find a DNS that would work I ran: $ drill www.amazon.com and it gave me the DNS IP that is being used in my network.

    Then I set it in Ubuntu using the following step to configure docker's DNS.

    Changed dns in /etc/docker/daemon.json

    {
        "dns": ["the DNS ip from step1"]
    }
    
    Restart docker: sudo service docker restart
    
    0 讨论(0)
  • 2020-11-30 19:25

    For Ubuntu users

    You need to add new DNS addresses in the docker config

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

    Add the dns after ExecStar.

    --dns 10.252.252.252 --dns 10.253.253.253
    

    Should look like that:

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

    Then do:

    systemctl daemon-reload
    sudo service docker restart
    

    Should work.

    0 讨论(0)
  • 2020-11-30 19:30

    Let it run. Sometimes pypi is having connection issues which are noisily put in your face to make you think it is broke. Just to be sure, let it roll, you might find it works it out for itself.

    The bottom line, despite these red error lines, is "Successfully built"

    $ 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
    
    0 讨论(0)
提交回复
热议问题