docker出现pip无法安装软件包

docker出现pip无法安装软件包

说明

RUN pip install -r requirements.txt

收到错误

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/

原因:pip无法从docker容器内部访问任何软件包

解决措施:Docker没有使用正确的DNS服务器

解决措施

1、修改网卡设置

# 先找到文件位置
find / -name ifcfg-eth*  

默认允许Network Manager管理DNS,所以首先设置为no,然后操作DNS设置

# 编辑
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改
NM_CONTROLLED="no"  //是否允许Network Manager管理,设置为no

2、设置DNS内容

还是在etc/sysconfig/network-scripts/ifcfg-eth0中修改

PEERDNS="yes"
DNS1="8.8.8.8"  # Google DNS

这种设置方案是以网卡中设置的DNS为主,resolv.conf中按照网卡设置的DNS内容自动生成,以后想修改DNS,必须修改网卡中的设置才不会在服务器重启之后出现DNS设置失效的问题。

3、重启网卡

service network restart

可能遇到的问题

WARNING: IPv4 forwarding is disabled. Networking will not work.

第一步:在宿主机上执行

echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf

第二步:重启network和docker服务

systemctl restart network && systemctl restart docker

参考

https://stackoverflow.com/questions/28668180/cant-install-pip-packages-inside-a-docker-container-with-ubuntu/41989423#41989423

https://blog.csdn.net/w670328683/article/details/61923858

https://www.cnblogs.com/python-wen/p/11224828.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要配置Docker中的pip源,可以按照以下步骤进行操作: 1. 首先,在Docker容器中运行命令来进入容器的终端: ``` docker exec -it <容器ID> /bin/bash ``` 2. 然后,编辑pip的配置文件pip.conf,可以使用nano或vi等编辑器进行编辑: ``` vi /etc/pip.conf ``` 3. 在pip.conf文件中,添加如下内容来配置pip源: ``` [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple ``` 在这里,我们使用了清华大学的镜像源来替代默认的pip源。当然,你也可以选择其他的镜像源,只需修改index-url的值即可。 4. 编辑完成后,保存并退出编辑器,然后执行以下命令来更新pip的配置文件: ``` pip config --user list ``` 5. 最后,退出容器的终端,并重启Docker容器以使配置生效: ``` exit docker restart <容器ID> ``` 这样,Docker容器中的pip源就成功配置完成了。之后,在容器中使用pip安装Python,将会从所配置的镜像源中获取安装包,加快下载速度,并且减少了由于网络限制而无法访问默认源的问题。 ### 回答2: 要配置docker中的pip源,可以按照以下步骤进行操作: 1. 编辑docker配置文件:使用命令`sudo nano /etc/docker/daemon.json`来编辑docker配置文件。如果该文件不存在,则需要创建一个新文件。 2. 添加pip源配置:在配置文件中添加以下内容: ```json { "registry-mirrors": ["https://your-mirror-host"] } ``` 将`your-mirror-host`替换为你想使用的pip源地址,例如使用阿里云的pip源可以填写`https://mirrors.aliyun.com/pypi/simple/`。 3. 保存配置文件并重启docker:保存配置文件并退出编辑器。然后,使用命令`sudo systemctl restart docker`重启docker服务,以使配置生效。 4. 配置pip源:在docker容器中使用pip命令,默认会使用配置文件中的pip源。可以使用`docker run`命令启动docker容器,并在其中使用pip命令进行软件安装等操作。 通过以上步骤,你就成功地配置了docker中的pip源,可以使用自定义的pip源来进行软件安装和管理。 ### 回答3: 在Docker中配置pip源可以帮助我们加快软件包下载的速度,提高开发效率。下面是一些简单的步骤来配置Docker中的pip源: 1. 创建一个Dockerfile,可以使用如下内容: ```dockerfile FROM python:latest RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ "python", "./app.py" ] ``` 2. 在requirements.txt文件中添加你要使用的Python库的名称,例如: ``` numpy pandas ``` 3. 在Dockerfile中添加以下内容,用于配置pip源为国内镜像站点。例如,使用阿里云的pip源: ```dockerfile RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ ``` 或者,使用清华大学的pip源: ```dockerfile RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple ``` 4. 构建Docker镜像。在终端中导航到保存了Dockerfile的目录,并运行以下命令: ``` docker build -t myapp . ``` 其中,myapp是你为镜像指定的名称。 5. 运行Docker容器。使用以下命令来运行容器: ``` docker run -it --rm myapp ``` 其中,myapp是你运行容器所使用的镜像名称。 以上步骤将在Docker容器中配置pip源为指定的国内镜像站点。这样,在容器中使用pip命令下载Python,将从国内源下载,提高下载速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值