[KodeKloud] Docker Compose - Example Voting Application with Docker Compose #1

Do Hyeon Chu·2024년 7월 9일

Docker

목록 보기
3/6

Basic Architecture

  • Schematic Diagram

Flow

  1. 사용자가 voting-app - https://Public_IP:5000 에 접근한다.
  2. voting-app은 입력된 정보를 redis로 전달해 캐싱한다.
  3. redis는 캐싱된 값을 종합해 일정 주기마다 worker로 데이터를 전달한다.
  4. worker는 받은 정보를 db에 전달하기 위해 SQL 형식에 맞게 데이터를 가공한 후 전송한다.
  5. result-app - https://Public_IP:5001 은 db에 저장된 투표 정보를 가져와 보여준다.

How to Build Image

  • $ git clone https://github.com/dockersamples/example-voting-app 을 입력하여 repository 생성

  • $ docker build [current directory] -t [image name] 입력 후 각 이미지들을 생성

이번 첫 번째 Demo Lecture에서는 컨테이너들을 Link 하는 원초적인 방법을 학습했으며 다음 회차에서는 Docker-Compose를 이용해 Front-end와 Back-end 네트워크를 서로 연동시키는 법을 배우게 될 것이다.

  • Compose를 이용하지 않고 아키텍처를 구축하는 방법은 다음과 같다.

    Ⅰ. voting-app :
    $ docker run -d -p 5000:80 --link redis:redis voting-app

    Ⅱ. redis :
    $ docker run -d redis redis

    Ⅲ. worker-app :
    $ docker run -d --link redis:redis --link db:db worker-app

    Ⅳ. db :
    $ docker run -d -e POSTGRES_HOST_AUTH_METHOD=trust --name db postgres:15-alpine
    ⚠️Caution : POSTGRES_HOST_AUTH_METHOD=trust - 이 구문은 비밀번호 없이 모든 연결을 허용하므로, 개발 환경에서만 사용하고, 프로덕션 환경에서는 사용하지 말자.

    Ⅴ. result-app :
    $ docker run -d -p 5001:80 --link db:db result-app

profile
To become Cloud Security Architect

0개의 댓글