我正在构建的一个docker映像通过pip获取了很多python包。在
RUN pip install -r lots-of-packages.txt
我的主机正在运行一个PyPi包镜像和缓存,以便可以快速下载这些包。在
pip install
命令允许用户通过参数--index-url
指定包索引的位置:
但是,在docker build
期间,主机localhost
引用docker容器本身,而不是为缓存提供服务的主机。在
通过docker build
构建docker容器时,如何访问主机上的网络资源?在
docker build --add-host <host>:<ip>
似乎它允许我为IP设置主机名,但是在构建过程中是否有一个有效的IP地址来寻址主机?在
您可以通过在生成时指定网络模式来执行此操作:
最简单的方法是检查docker0网桥的ip(例如使用
ip a
命令),并在该网桥上使用主机ip而不是localhost。因此,假设您运行Linux,并且docker0 ip是172.17.0.1,那么您的命令将如下所示:RUN pip install index-url http://172.17.0.1:3141/root/pypi/ lots-of-packages.txt
如果您运行的是Windows或Mac,那么可能会涉及一些端口转发。在
相关问题 更多 >
编程相关推荐