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 네트워크가 쓰고 있지 않은 서브넷으로 구성해야 한다.
새롭게 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 에 대한 정보를 들여다보자.
(1) Postgresql 연결
새롭게 생성한 postgresql
airflow 메타 db 연결
포트번호: 5431
db이름: airflow
username: airflow
pw : airflow
(2) 스키마 잘 형성되었는지 확인