728x90
반응형
Docker Compose?
Docker Compose는 1개 이상의 도커 컨테이너를 생성할 때 사용하는 스크립트 하나를 뜻하며, 컨테이너들의 설정을 관리(컨테이너 실행 순서, 컨테이너 네트워크 등)할 수 있도록 해주는 Docker의 기능 중 하나다.
스크립트는 docker-compose.yaml 이라는 이름의 파일에 컨테이너들의 설정 내용을 입력하면 되고, Docker Compose 서비스를 시작하기 위해서는 yaml 파일이 있는 디렉토리에서 아래 명령어를 입력하면 실행된다. (Docker 서비스가 설치되어 있다는 가정 하에)
sudo docker compose up
docker-compose.yaml 파일 해석
yaml 파일은 json이나 xml과 같이 key, value로 구성되며 계층적인 구조를 가졌다. 파이썬과 같이 들여쓰기 문법을 사용한다는 공통점도 있다.
1 Level 내용
- version: 파일의 버전 정보
- x-airflow-common: Extetion Fields (각 서비스에 공통 적용될 항목들 정의)
- 공통 지정할 항목을 &을 붙여서 지정한다.
- services: 컨테이너로 실행할 서비스 정의
하단 redis의 경우 port 대신 expose 키가 있다. port 설정과 비슷하면서도 살짝 다르다. port의 경우에는 외부와 연결하는 port 번호를 말하는 것이지만, expose는 내부의 연결을 위한 번호라고 할 수 있다. 내부 컨테이너 간의 포트 번호 개념이라고 알고 있으면 될 것 같다.
* ports는 다른 컨테이너와 겹치지 않게 설정해야 한다.
- volumes: 컨테이너에 할당할 volume 정의
# 볼륨에 대한 정보 확인하기 위한 명령어
# 볼륨 리스트 보기
sudo docker volume ls
# 볼륨 상세 보기
sudo docker volume inspect {volume_id}
- networks: 컨테이너에 연결할 network 정의
# networks 작성 예시
networks
networks_custom: # 새로 만들 네트워크 이름
driver: bridge
ipam:
driver: default
config: # 네트워크 주소값 설정
- subnet: 172.18.0.0/16
gateway: 172.18.0.1
# 네트워크에 대한 정보 확인하기
# 네트워크 리스트 보기
sudo docker network ls
# 네트워크 상세 보기
sudo docker network inspect {network_id}
728x90
'Minding's Programming > Airflow' 카테고리의 다른 글
[Airflow] Connection과 Hook (0) | 2024.07.27 |
---|---|
[Airflow/Docker] Postgres 컨테이너 추가해 DB 접속하기 (0) | 2024.07.26 |
[Airflow] Custom Operator 개발해보기 (BaseOperator) (0) | 2024.07.26 |
[Airflow] SimpleHttpOperator로 서울시 공공데이터 API 이용해보기 (0) | 2024.07.25 |
[Airflow] TriggerDagRun Operator / ExternalTask Sensor (다른 DAG 실행하기) (0) | 2024.07.25 |