도커 컴포즈 목적
목적
1개 이상 도커 컨테이너 생성 시 스크립트 하나(
docker-compose.yaml)로 컨테이너들 설정을 관리
도커 컴포즈 구조
1 Level 항목
| 항목 | 설명 |
|---|---|
version | yaml 파일의 버전 정보 |
x-airflow-common | 컨테이너에 공통 적용될 항목들 정의 |
services | 컨테이너 실행할 서비스 정의 |
volumes | 컨테이너에 할당할 volume 정의 |
networks | 컨테이너에 연결할 network 정의 (IP 적용 시 작성) |
x-airflow-common
공통 지정할 항목을 &붙여서 지정. 컨테이너 생성 시 airflow-common, airflow-common-env, airflow-common-depends-on을 받음.
services
- 컨테이너에 올릴 서비스 지정 (웹서버, postgres 등)
depends_on: 컨테이너 실행 순서 정의. 설정한 컨테이너(redis,postgres)가 먼저 실행된 후 본 컨테이너가 실행됨
postgres 서비스 주요 항목
| 항목 | 설명 |
|---|---|
image | 사용할 postgres 버전 |
environment | postgres에서 사용할 OS 환경변수 |
volumes | 컨테이너와 연결할 로컬 파일 시스템 경로 (컨테이너 재시작 시 데이터 보존) |
ports | 로컬과 docker 포트 연결 (로컬port:컨테이너port) |
volumes
컨테이너에 사용될 볼륨을 미리 정의.
sudo docker volume ls # 볼륨 리스트 확인
sudo docker volume inspect {volume_id} # 볼륨 상세 보기networks
sudo docker network ls # 네트워크 리스트
sudo docker network inspect {network_id} # 네트워크 상세 보기참고사이트