Docker-compose 란

snooby·2022년 7월 28일
1

🐳 Docker & K8S

목록 보기
2/51
post-thumbnail

1. docker-compose를 쓰는 이유

도커 컴포즈는 컨테이너 여럿을 띄우는 도커 애플리케이션을 정의하고 실행하는 도구(Tool for defining and running multi-container Docker applications) 이다.

컨테이너 실행에 필요한 옵션을 docker-compose.yml이라는 파일에 적어둘 수 있고, 컨테이너 간 의존성도 관리할 수 있어서 좋다.
웹 서비스는 일반적으로 프론트엔드 서버, 벡엔드 서버, 데이터베이스 서버로 구성되기 때문에 각 서버를 docker container로 연결하여 동작시키고 docker compose를 사용하여 해당 컨테이너들을 관리하는 것이다.

2. docker-compose 파일 작성하기

docker compose의 기본 작성법

docker compose는 docker-compose.yml 파일을 작성하여 실행할 수 있다.
docker-compose.yml 파일은 YAML(야멜) 형식으로 작성해야 한다.

docker compose 속성

  • version
    docker compose의 파일 포맷 버전을 지정한다.
    기본적으로 버전 3을 사용하는 것이 일반적이다.
  • services
    서비스의 이름
  • image
    docker container의 이름을 정의한다.
    Docker Hub에 있는 이미지를 사용하여 docker container를 작성할 경우 image를 설정할 수 있다.
  • restart
    docker container가 다운되었을 경우, 항상 재시작하라는 설정이다.
  • volumnes
    docker run 명령의 -v 옵션과 동일한 역할을 한다.
    여러 개의 volume을 지정할 수 있으며 리스트처럼 작성하면 된다.
  • environment
    dockerfile의 ENV 옵션과 동일한 역할을 한다.
    참고로, env_file 옵션으로 환경변수 값이 들어있는 파일을 읽을 수도 있다. (패스워드 등의 보안을 위한 방법)
  • ports
    docker run 명령의 -p 옵션과 동일한 역할을 한다.
  • build
    docker image를 Dockerfile 기반으로 작성 시 사용한다.
  • build
    docker image를 Dockerfile 기반으로 작성 시 사용한다.
  • depends_on
    컨테이너가 실행되는 순서를 제어
    app 안에 " depend_on : - db " 설정이 있는 경우, 우선적으로 db 컨테이너가 먼저 실행되고 그 후에 app컨테이너가 실행되어 app 컨테이너가 db 컨테이너로 접속을 시도하도록 컨테이너 실행 순서를 제어하는 것이다.

3. docker-compose 명령어

# 컨테이너 실행 
docker-compose up -d // 도커 백그라운드 실행
docker-compose up --force-recreate // 도커 컨테이너 새로 만들기
docker-compose up --build // 도커 이미지 빌드 후 compose up

# 컨테이너 내리기
docker-compose down // 컨테이너 stop & 삭제
docker-compose stop

저는 앞서 db, front, back 모두 Dockefile을 만들었고 Docker-compose로 한번에 실행하면 다음처럼 하나의 컨테이너 안에 3개의 컨테이너가 구동되는 것을 볼 수 있습니다.

profile
데이터를 가치있게 다루고 싶은 개발자 🐥

0개의 댓글