我在 docker 容器中运行 devpi,如下所示:
[Unit]
Description=devpi docker-container
Requires=docker.service
After=docker.service
[Service]
Restart=always
RestartSec=3
ExecStart=/usr/bin/docker run --rm -p 3141:3141 --name devpi -v /devpi_data:/data -e DEVPI_PASSWORD='********' akailash/docker-devpi
ExecStop=/usr/bin/docker stop -t 2 devpi
[Install]
WantedBy=multi-user.target
它运行良好。我可以通过主机上的 URL 访问它,也可以按预期从它安装包。
6f663ba131a1 akailash/docker-devpi "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:3141->3141/tcp devpi
但是,如果我想从这个容器构建另一个安装包的 docker 映像,则有一个 ConnectTimeout。如果我尝试卷曲,连接会在一段时间后超时。
如果我使用本期中所述的 --net=host 选项,我可以进行 pip安装。但是,我不想使用主机网络。我尝试了 0.0.0.0:3141 和 172.17.0.1:3141 并且得到了相同的结果。在 docker daemon 服务中添加 --ip=0.0.0.0 对我不起作用。如何从另一个容器访问 devpi 容器,而不必每次都使用 --net=host?