/ docker

Docker Cross Container Communication

Docker allows communications between containers, provided the container's port is exposed. The example below creates an NGINX container, which is used as a reverse proxy for another container (Tomcat in this case).

1. Install and Run Tomcat Image & Container

sudo docker run -dit --name my_tomcat_container -p 8080:8080 tomcat

2. Find Docker IP Address for Tomcat Container

docker inspect my_tomcat_container | grep IPAddress

Output is found below. In this case, our IP is 172.17.0.3. Yours may differ.
"SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",

3. Create NGINX Config File and Set proxy_pass IP (bare minimum config below...):

mkdir conf.d
echo "server{listen 80; location / { proxy_pass http://172.17.0.3:8080;}}" > conf.d/default.conf

4. Install and Run NGINX Image & Container, and Mount Created conf.d Directory

sudo docker run -dit --name my_nginx_container -p 80:80 -v /path/to/conf.d:/etc/nginx/conf.d nginx

5. Verify

Open your browser and you should see the Tomcat page on http://localhost instead of the default Nginx page.