Net Sim
Net Sim

Reputation: 357

How Docker Container can access each other

In my docker-compose , i have 2 containers . How to make this 2 containers access each other as they installed in one host without containers . How they can see each other and their file systems

Upvotes: 3

Views: 3861

Answers (2)

Tim Seed
Tim Seed

Reputation: 5279

To allow inter-container communication create a common bridge network, and put both containers into the same network. The build phase assuming nothing needs to "talk" to each other does not need the --network switch.

docker network create jointops
docker build --network jointops -t srv1 /srv1
docker build --network jointops -t srv2 /srv2
docker run --network jointops -d -t srv1 
docker run --network jointops -d -t srv2 

To check both machines are on the same network now issue the command

docker network inspect jointops

You should see both machines having an IP Allocation.

Ok... so how do they communicate ? The bridge network - jointops by default will perform dns-resolution

So if srv1 has something like

curl -c http://srv2/bla/bla/bla

This will be resolved correctly.

Regarding Shared Data access ..

  • Do not run 2 apps in 1 container

Instead

  • create a docker volume
  • run 2 separate containers
    • each container can connect to the same volume

Upvotes: 4

brianolive
brianolive

Reputation: 1671

See here for inter-container communication. Each container encapsulates its contents, so use ports for communication instead of trying to just openly expose the full filesystem of one container to another.

If both applications need access to the same filesystem, consider running both in the same container. That is supported.

Upvotes: -1

Related Questions