섹션8: Postgres 컨테이너 올리기

류홍규·2023년 8월 16일
0

airflow

목록 보기
12/18
post-thumbnail

1. Postgres 컨테이너 추가하기

networks: # networks를 하나 만들려고 해
	network_custom: #network_custom이라는 이름으로 만들거야.
    driver: bridge
    ipam:
    	driver:default
        config:
        	-subnet: 172.28.0.0/16
            - gateway: 172.28.0.1

그리고 각각의 컨테이너에는 해당 부분을 추가해준다.

networks:
	network_custom:
    	ipv4_address: 172.28.0.3

이때, default 네트워크가 쓰고 있지 않은 서브넷으로 구성해야 한다.

2. 컨테이너 고정 IP할당하기

  • 기본적으로 컨테이너들은 유동IP를 지닌다.(즉, 재기동시 IP가 변경 된다.)
  • 따라서, 고정 IP를 할당하려면 networks를 만들어 할당해야 한다.
  • networks를 지정하지 않은 컨테이너들은 default network에 묶이게 된다.
  • 따라서 동일네트워크에 두고 싶은 컨테이너들을 모두 동일 networks에 할당이 필요하다.

새롭게 network_custom 네트워크를 만들고 postgres 컨테이너를 만들면,
기본적으로 airflow설치시 airflow를 실행하는 컨테이너들은 default 유동 네트워크로 묶여있다.

이렇게 될 경우, 네트워크의 불일치 때문에 새롭게 생성한 postgres 컨테이너로 접속할 수 없으므로, 동일 네트워크에 두고 싶은 컨테이너들은 모두 동일 networks로 할당이 필요하다.


현재 NetworkID가 0205로 시작하는 네트워크가 default로 되어있음을 알 수 있다. default의 Gateway는 172.19.0.1로 되어있으며, 대역이 172.19.0.6으로 쓰고 있다.

원래 있던 docker-compose.yaml 파일을 수정하지 않고
cp docker-compose.yaml docker-compose-new.yaml 명령어로 새로운 docker-compose-new.yaml파일을 만들고 수정을 진행해주었다.

이어서 docker compose up명령어를 수행해줘야 하기 때문에,
mv docker-compose.yaml docker-compose.yaml.230816으로 바꾸어주고,
mv docker-compose-new.yaml docker-compose.yaml로 바꾸어주었다.

vi docker-compose.yaml명령어를 통해 수정한 내용이 반영되었는지 확인해보면,

잘 바뀐 것을 확인할 수 있다. 이제 sudo docker compose up 명령어를 통해 도커 컨테이너를 실행한다.

sudo docker ps 명령어를 입력해서, 컨테이너가 잘 올라왔는지 확인해보자.

airflow-postgres_custom-1 이라는 이름으로 postgres 컨테이너가 잘 올라왔음을 알 수 있다. 개방된 포트는 설정해준 5432:5432로 되어있고, 원래 있던 postgres 컨테이너는 5431:5432로 포트포워딩 변경을 한 부분도 잘 반영되었다.


만들어준 postgrecontainer 에 대한 정보를 들여다보자.

3. DB 접속하기

(1) Postgresql 연결

  • 새롭게 생성한 postgresql

  • airflow 메타 db 연결
    포트번호: 5431
    db이름: airflow
    username: airflow
    pw : airflow

(2) 스키마 잘 형성되었는지 확인

profile
공대생의 코딩 정복기

0개의 댓글