MLGonc
MLGonc

Reputation: 99

How docker containers expose services?

I'm deploying a stack of services through the command: docker stack deploy -c <docker-compose.yml> <stack-name>

And I'm mapping ports of one of these services on docker compose with ports: 8000:8000.

The network driver being used is overlay. I can access these services via localhost:8000, via Peers IP(?).

When I inspect the network created, I can see the local IPs of each container (for instance, 10.0.1.2). But Where is the external IP of container (the one like 172.0. ...) ?

I am running these docker container on a virtual machine ubuntu.

How can I access the services running on containers from other nodes running on other networks? Isn't possible to access via hostIP:port?

If so, how do I get the host IP? When I do docker-machine IP I get "host is not running".

[EDIT: I wasn't doing port mapping between the host and the VM in virtualbox. Now it works!]

Whats the best way to communicate between containers on the same swarm?

Thanks

Upvotes: 1

Views: 220

Answers (1)

SuperSandro2000
SuperSandro2000

Reputation: 583

Whats the best way to communicate between containers on the same swarm? Through name discovery?

In general if you communicate between containers you should use the container/service name.

And for your other problem you probably wan't a reverse proxy like nginx or traefik.

Upvotes: 1

Related Questions