I'm building up a nodejs app which is running in the docker container...
This is the command I used to run the container...
sudo docker run -it --rm -p 3000:6001 --name xxx-running xxx
Execute above command line, got following output..
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
Since the app will call third party api, so the request module is required. Each time when a request is invoked, I got following error...
{ [Error: connect ECONNREFUSED 192.155.253.83:443]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '192.155.253.83',
port: 443 }
I know maybe it's because of the localhost entry, but how can I change this?
Are you hosting your third party api inside a docker container on localhost? If yes then you need to make sure that third-party api docker container is sharing same network. See https://docs.docker.com/engine/userguide/networking/. I had same problem trying to access rest endpoint which i assumed will be resolved with local host since it is running on my docker inside container. Here is a sequence of steps which helped me resolved issue:
docker network ls
to see how many bridge drivers you have. In my case i had 2 and containers where using different onesdocker run -d -t --network networkname --name containername
docker network inspect networkname
. You will see details of network with list of containers. Each container will have IPv4Address associated with it. Use value of these address to communicate instead of localhost or 127.0.0.1 If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With