Dockerコンテナーで実行されているnodejsアプリを構築しています...
これは私がコンテナを実行するために使用したコマンドです...
Sudo docker run -it --rm -p 3000:6001 --name xxx-running xxx
上記のコマンドラインを実行すると、次の出力が得られます。
Running on Locally
AppEnv {
isLocal: true,
app: {},
services: {},
name: 'xxx',
port: 6001,
bind: '0.0.0.0',
urls: [ 'http://localhost:6001' ],
url: 'http://localhost:6001' }
App started on port http://localhost:6001
アプリはサードパーティのAPIを呼び出すため、リクエストモジュールが必要です。リクエストが呼び出されるたびに、次のエラーが発生しました...
{ [Error: connect ECONNREFUSED 192.155.253.83:443]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '192.155.253.83',
port: 443 }
Localhostエントリが原因である可能性がありますが、これを変更するにはどうすればよいですか?
LocalhostのDockerコンテナー内でサードパーティのAPIをホストしていますか?はいの場合、サードパーティのAPI Dockerコンテナーが同じネットワークを共有していることを確認する必要があります。 https://docs.docker.com/engine/userguide/networking/ を参照してください。コンテナー内のドッカーで実行されているため、ローカルホストで解決されると想定して、残りのエンドポイントにアクセスしようとして同じ問題が発生しました。問題を解決するのに役立つ一連の手順は次のとおりです。
docker network ls
を実行して、ブリッジドライバーの数を確認します。私の場合、2つと異なるコンテナを使用するコンテナがありましたdocker run -d -t --network networkname --name containername
docker network inspect networkname
を実行します。コンテナのリストでネットワークの詳細が表示されます。各コンテナにはIPv4Addressが関連付けられています。 localhostまたは127.0.0.1の代わりにこれらのアドレスの値を使用して通信します