Docker와 CI 환경 #5

최민석·2021년 2월 5일
2

Docker

목록 보기
5/5
post-thumbnail

Docker-Compose

다중 도커 컨테이너를 서로 간의 연결/실행을 하게 도와주는 도구입니다.

우리의 docker-compose.yml 파일에 대한 구성 컨테이너이다.

  • 추가적으로 포트매핑을 해주어야 한다.
  • 기존 두 컨테이너는 서로 연결 시켜줄 수 없는 것을,
    docker-compose를 이용해서 한다.

  • version : docker-compose 버전
  • service : 실행하려는 docker container 정의
  • frontend, backend : 컨테이너 이름
  • build : 현 디렉토리에 있는 Dockerfile (default)
  • context : 해당 컨테이너에 맞는 Dockerfile 경로
  • container_name : 컨테이너 이름 지정

추가적으로 docker-compose 실행 법이다.

  • docker-compose up : 이미지가 존재 하지 않을 경우에만 빌드, 컨테이너 시작
  • docker-compose up --build : 이미지를 무조건 빌드, 컨테이너 시작
  • docker-compose up --no-build : 이미지 빌드 없이 컨테이너 시작, 이미지 없을 시 실패

Docker-compose는 왜 써야하는가?

  • 보통 도커를 다루게 된다면 여러 가지 컨테이너로 분리해서 구성하게 된다.
    • 나눠 놓은 컨테이너만 크게 4가지로 나뉜다.
  • 그런데 이러한 도커 컨테이너들은 전부 '격리' 되어있다는 점이다.
  • 이걸 연결하기 위해서는 도커 컴포즈를 사용을 한다는 점!

여기까지가 Docker-compose 사용에 대한 내용이고,
다음은 Nginx 서버에 대해서 알아보도록 하자.


Nginx가 뭐야?

웹 서버 어플리케이션의 종류로, HTML, CSS, Javascript, 이미지와 같은 정보를 웹 브라우저(Chrome, Iexplore, Opera, Firefox 등)에 전송하는 역할

즉, 중간 다리 역할을 한다는 것.

우리의 프로젝트에서는
Frontend와 Backend을 전체적으로 이어주는 Proxy의 역할을 한다.

요청 URL이 API가 추가되서 온다면 Server, 그 외에는 Front로 간다는 것...

그러면 왜 Nginx를 사용 할까?
단순하게 Server/Front 연결을 할 수도 있다.

웹서버로 구성해서 이중화 구성을 하는 이유는
그럴싸한 로드밸런스 를 위해서다.

  1. 죽지 않는 서버 ( 무중단 서버 구현 )
  2. 매우 빠른 서버 구성

위와 같은 서버 구성을 하기 위해서는 Nginx와 같은 중간 웹서버가 필요하다.

단점은 .. 오류가 발생하면 그대로 바로 배포해버려서 고치기 힘들다는 점..ㅠㅠ

profile
되돌아보며 성장합니다🔨

0개의 댓글