生成docker包含时将流量路由到主机

2024-05-21 07:49:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建的一个docker映像通过pip获取了很多python包。在

RUN pip install -r lots-of-packages.txt

我的主机正在运行一个PyPi包镜像和缓存,以便可以快速下载这些包。在

pip install命令允许用户通过参数--index-url指定包索引的位置:

^{pr2}$

但是,在docker build期间,主机localhost引用docker容器本身,而不是为缓存提供服务的主机。在

通过docker build构建docker容器时,如何访问主机上的网络资源?在

docker build --add-host <host>:<ip>似乎它允许我为IP设置主机名,但是在构建过程中是否有一个有效的IP地址来寻址主机?在


Tags: installpipofdockerrun用户命令build
2条回答

您可以通过在生成时指定网络模式来执行此操作:

docker build  network host ...

最简单的方法是检查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,那么可能会涉及一些端口转发。在

相关问题 更多 >