docker-compose.yaml 파일 수정해 Postgres 컨테이너 추가하기
먼저 docker-compose.yaml 파일을 열어 services 항목에 아래 내용을 추가한다.
services
postgres_custom:
image: postgres:13
environment:
POSTGRES_USER: minding
POSTGRES_PASSWORD: minding
POSTGRES_DB: minding
TZ: Asia/Seoul
volumes:
- postgres-custom-db-volume:/var/lib/postgresql/data
ports:
- 5432:5432 # 외부에서 접속할 수 있도록 포트 노출
또한 postgres DB를 사용하기 위해서는 고정 IP를 할당해주어야 하는데, 컨테이너는 기본적으로 유동IP를 사용하기 때문에 networks 항목을 docker-compose.yaml 파일에 추가해 할당해줘야 한다.
networks를 따로 지정해주지 않은 컨테이너는 default network에 묶이게 된다. 따라서 동일 네트워크에 두고 싶은 컨테이너들은 동일한 networks 할당해주는 것이 필요하다.
그리고 volume에도 아래 내용을 추가해준다.
volumes:
postgres-db-volume:
postgres-custom-db-volume: # 추가한 내용
dafault network를 확인하는 방법
우선 아래 명령어를 통해 현재 실행 중인 아무 컨테이너의 ID를 알아낸다.
sudo docker ps
그리고 난 뒤 아래 명령어를 통해 해당 컨테이너의 상세정보를 출력한다.
sudo docker inspect 9fbbb4260ecb
>>>
...
"NetworkID": "c9a09a9ceaa375f69f42ac50279d9a596fbcf6b862b684deed1c86971697b2dd",
"EndpointID": "8f238071a3b857e286e2ac9431d5757929a351a4aa25bc79904721426a981300",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.4",
...
그러면 하단에 NetworkID와 더불어 Gateway가 출력되는데, '172.18'까지가 현재 사용하고 있는 default network이다.
sudo docker network ls
>>>
NETWORK ID NAME DRIVER SCOPE
1586c3177de2 bridge bridge local
4abc0b9b758d host host local
c9a09a9ceaa3 minding_default bridge local
211b81f03766 none null local
위의 NetworkID와 default Network ID를 비교해보면 더 명확히 알 수 있다.
DBeaver 설치 및 접속 확인
DB에 접속하기 위한 툴로 DBeaver를 먼저 설치해준 뒤 실행한다.
PostgreSQL을 선택한다.
이후 위에서 수정한 docker-compose.yaml 파일 내용을 토대로 위 내용을 작성해준다.
Host는 기본적으로 WSL과 연동되어 있는 localhost를, 포트 번호는 위에서 설정한 5432 포트를 사용한다.
그리고 Database 이름과 Username, Password는 위에서 설정해준 대로 입력하면된다.
이후 왼쪽의 DB를 눌러 드라이버를 다운로드 받아준다.(최초 접속시에만)
이후 위 이미지처럼 하단 메뉴들이 잘 노출된다면 정상적으로 연결된 것이다.
'Minding's Programming > Airflow' 카테고리의 다른 글
[Airflow] Postgres Hook bulk_load 문제점, Custom Hook으로 bulk_load() 해보기 (0) | 2024.07.29 |
---|---|
[Airflow] Connection과 Hook (0) | 2024.07.27 |
[Airflow/Docker] Docker-compose.yaml 파일 해석 (0) | 2024.07.26 |
[Airflow] Custom Operator 개발해보기 (BaseOperator) (0) | 2024.07.26 |
[Airflow] SimpleHttpOperator로 서울시 공공데이터 API 이용해보기 (0) | 2024.07.25 |