일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- django
- 코딩테스트
- SQL
- cloud platform
- Til
- Spark
- AWS
- airflow
- 데이터 시각화
- PCCP
- 데브코스
- Selenium
- 팀 프로젝트
- Tableau
- HTML
- 데이터 엔지니어
- Kafka
- superset
- 코딩 테스트
- GCP
- beuatifulsoup
- VPC
- Snowflake
- 슈퍼셋
- 코테 연습
- Today
- Total
주니어 데이터 엔지니어 우솨's 개발일지
데이터 엔지니어링 49일차 TIL 본문
학습내용
.dockerignore란?
: 불필요한 Binary파일이나 패스워드가 들어있는 파일 등 개발자의 부주의로 인한 사고를 막기위함 및 깃업의 크기가 불필요하게 늘어나는 것을 방지한다.
- Image build할 때 추가하지 말아야할 파일들이나 폴더들 지정
Docker-Compose란?
- 다수의 컨테이너로 소프트웨어가 구성되는 경우 사용할 수 있는 툴 + 환경설정파일
- docker-compose.yml로 설정
- 다양한 테스트등도 수행이 가능하다
- 다양한 버전을 만드는 것도 일반적이다(dev, test, pord등)
- 개별 컨테이너를 따로 관리하는 것보다 훨씬 더 생산성이 높다
- 환경설정 파일의 이름은 docker-compose.yml이나 docker-compose.yaml 이다
docker-dompose 명령어
build : 이미지를 빌드하거나 없으면 다운로드 받아온다
up : run과 비슷한 역할 (build=> create => start 순)
pull : 도커 허브에서 읽어올 수 있는 이미지들을 가져오고 기본적으로 그룹으로 적용이 된다
ps : 현재 관리되고 있는 컨테이너들의 상태를 보여준다(개별적)
ls : 현재 관리되고 있는 컨테이너들의 상태를 보여준다(그룹별로 보여줌)
down : 컨테이너 중지 및 삭제, 이미지는 삭제되지 않는다
start : 현재 중지된 컨테이너를 재실행하며, 새로운 컨테이너를 생성하지 않는다
stop : 현재 실행중인 컨테이너를 삭제하지 않고 중지시킨다
rm : 현재 중지된 컨테이너를 삭제한다
docker-compose.yml
- services : 프로그램을 구성하는 서비스들을 지정
- 각 서비스는 별개의 Docker Image 지정과 Docker Container실행으로 구성된다
- 각 서비스는 자신의 Dockerfile을 가지고 있어야하며 없을 시 docker hub등에서 이미지를 다운로드한다.
- 서비스별로 포트번호, 환경 변수, 디스크 볼륨 등을 지정해야한다
- 서비스 이름은 아무 이름이나 사용가능하다
- docker-compose build : build 키로 지정된 것들 대상
- docker-compose pull : docker hub에서 이미지들을 읽어오려고 함
- docker-images : 각 개별 이미지 앞에 폴더 이름을 prefix로 붙인다(docker hub에서 읽어온것 제외)
Docker-compose.yml 작성의 예
docker-compose 네트워킹
- docker끼리 네트워크 연결이 필요한 경우
- services에 준 이름으로 호스트 이름이 생성된다.
- 내부에 DNS 서버가 하나 생성되어 이름을 내부 IP로 변환해준다
- 별도로 네트워크를 구성하고 싶다면 : networks에 네트워크를 나열하고 네트워크를 적절하게 서비스에 지정해주어한다.
Airflow에서 Dag를 구현하며 특정 파이썬 모듈을 설치해야 한다면?
: x-airflow-common에서 _PIP_ADDITIONAL_REQUIREMENTS의 값을 변경
Before:
_PIP_ADDITIONAL_REQUIREMENTS: ${_PIP_ADDITIONAL_REQUIREMENTS:-}
After:
_PIP_ADDITIONAL_REQUIREMENTS: ${_PIP_ADDITIONAL_REQUIREMENTS:- yfinance pandas numpy}
=> _PIP_ADDITIONAL_REQUIREMENTS 뒤에 공백하나를 넣고 추가할 패키지들을(yfinance, pandas, numpy) 넣어주고 docker-compose up을 실행한다.
'데브코스' 카테고리의 다른 글
데이터 엔지니어링 51일차 TIL (1) | 2024.06.05 |
---|---|
데이터 엔지니어링 50일차 TIL (1) | 2024.06.05 |
데이터 엔지니어링 48일차 TIL (1) | 2024.06.05 |
데이터 엔지니어링 47일차 TIL (0) | 2024.06.05 |
데이터 엔지니어링 46일차 TIL (1) | 2024.06.05 |