local-nginx-tutorial/eg3
Jason Zhu 7074e55f40 eg3 removed unnecessary exposed port 2023-05-05 00:06:20 +10:00
..
backend eg3 finished Backend only 2023-05-04 23:45:36 +10:00
frontend Finished Frontend only for eg3 2023-05-04 23:51:49 +10:00
proxy eg3 finished Backend only 2023-05-04 23:45:36 +10:00
README.md eg3 removed unnecessary exposed port 2023-05-05 00:06:20 +10:00
docker-compose.yaml eg3 removed unnecessary exposed port 2023-05-05 00:06:20 +10:00

README.md

e.g. 3: Create an Ningx Reverse Proxy With Docker

How To Run Multiple Docker Containers Under One URL

Backend only

How to test it:

  1. Comment all other containers
  2. Run docker compose build & docker compose up
  3. Test by curl localhost:5000, should return {"version":"1.0.0"}

Frontend only

How to test it:

  1. Comment all other containers
  2. Run docker compose build & docker compose up
  3. Test by curl localhost, should return a html file (as /eg3/frontend/index.html)

Backend + Frontend

In this section, we test frontend container can cross-communicate with backend container.

Steps:

  1. Comment out proxy container
  2. Remove exposed of both containers, as we they don't need expose their ports to outside environment. We just want to test their cross-communication in the same docker network
    1. port 80 for frontend;
    2. port 5000 for backend;
  3. Run docker compose build & docker compose up
  4. Create a network: docker network create mynetwork
  5. Add containers into network
    1. docker network connect mynetwork backend
    2. docker network connect mynetwork frontend
  6. Inspect mynetwork has containers docker network inspect mynetwork
  7. Test network:
    1. Enter frontend container: docker exec -it frontend /bin/sh
    2. Make a request to backend: curl http://backend:5000
    3. Get response {"version": "1.0.0"}