次のように、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 があります。curl を試すと、しばらくすると接続がタイムアウトします。
この問題で説明されているように --net=host オプションを使用すると、pip インストールを実行できます。ただし、ホスト ネットワークを使用する必要はありません。0.0.0.0:3141 と 172.17.0.1:3141 を試しましたが、同じ結果が得られました。docker デーモン サービスに --ip=0.0.0.0 を追加してもうまくいきません。毎回 --net=host を使用せずに別のコンテナーから devpi コンテナーにアクセスするにはどうすればよいですか?