我正在构建一个在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条目,但是如何更改呢?
您是否将第三方api托管在localhost上的docker容器中?如果是,那么您需要确保第三方api docker容器共享同一网络。请参阅https://docs.docker.com/engine/userguide/networking/。我尝试访问其余端点时遇到了相同的问题,我认为它将与本地主机一起解决,因为它在容器内部的docker上运行。以下是一系列步骤,可帮助我解决问题:
docker network ls
docker run -d -t --network networkname --name containername
docker network inspect networkname