[Docker] 3.도커 컴포즈 사용하기

어려운 내용이 들어가면 내가 이해하기 어려우니까 도커에 대한 간단한 글

Docker Compose

컨테이너 실행에 필요한 옵션을 yml 파일에 적어두어 컨테이너 간 실행 순서나 의존성을 관리 할 수 있음

설치

Docker desktop을 사용하면 Docker, Docker compose, kubernetes등 앞으로 사용할 것이 전부 설치가 되지만, AWS나 gcloud같은 클라우드 환경에서 사용하기 위해서는 하나 하나 직접 설치해주어야 한다.

docker compose 설치 법은 다음 과정을 따른다.

  1. 다운로드 및 docker-compose를 사용하기 위해 bin에 파일 생성
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null
  1. 실행 권한 변경
    $ sudo chmod +x /usr/local/bin/docker-compose
    
  2. 심볼릭 링크 생성
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  1. 확인
$ docker-compose --version

Docker compose

파일 예시

# docker-compose.yml
version: '3'
services:
  proxy:
    image: nginx:latest
    container_name: nginx_container
    ports: 
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
  web_1:
    build:
      context: ./app
    container_name: web_1
    expose:
      - "8080"
  web_2:
    build:
      context: ./app
    container_name: web_2
    expose:
      - "8080"

Docker compose주요 명령어

이미지 빌드 후 서비스 실행

$ docker-compose up

-d 옵션으로 백그라운드 실행

서비스 제거

$ docker-compose down

서비스 목록

$ docker-compose ps

실행/중지

$ docker-compose start
$ docker-compose stop

로그

$ docker-compose logs

서비스 이름을 적으면 해당 서비스의 로그만 확인

-f: 로그 스트림

docker-compose.yml 업데이트

docker-compose.yml파일을 수정하고 다시 up 명령어를 사용하면 자동으로 컨테이너를 추가/재생성해준다.