[Airflow] 도커 airflow 웹서버 포트 에러

(HTTP code 500) server error - driver failed programming external connectivity on endpoint learn-airflow-airflow-webserver-1 (7970cbc56e1b82e4ab53f23ded2ddf1aea7bf548be1e1014e22ae57ec83b9821): Bind for 0.0.0.0:8080 failed: port is already allocated docker에서 airflow 띄웠는데 로컬 호스트 에러가 나와
 

ChatGPT의 말:

ChatGPT

이 오류 메시지는 Docker에서 Airflow 웹 서버를 실행할 때 사용하는 포트 8080이 이미 다른 프로세스에서 사용 중일 때 발생합니다. 이를 해결하려면 몇 가지 방법이 있습니다.

1. 포트가 이미 사용 중인 프로세스 확인 및 종료

현재 8080 포트를 점유하고 있는 프로세스를 종료해 해결할 수 있습니다. 다음 명령어로 포트를 사용하는 프로세스를 확인하고 종료하세요:

bash
코드 복사
# 8080 포트를 사용하는 프로세스 확인 sudo lsof -i :8080 # 프로세스를 종료 (PID는 위 명령어로 확인한 프로세스 ID) sudo kill -9 <PID>

2. Airflow를 다른 포트로 실행

Docker Compose 파일에서 8080 대신 다른 포트로 설정해 Airflow 웹 서버를 실행할 수도 있습니다. 예를 들어, docker-compose.yml에서 다음과 같이 수정해 보세요:

yaml
코드 복사
ports: - "8081:8080" # 8081 포트를 사용하도록 수정

이렇게 하면 로컬에서 http://localhost:8081로 접속할 수 있습니다.

3. 이미 실행 중인 컨테이너 중지

이미 실행 중인 Airflow 컨테이너가 8080 포트를 점유하고 있을 수 있습니다. 이 경우 다음 명령어로 중지 후 재시작하세요:

bash
코드 복사
docker ps # 실행 중인 컨테이너 확인 docker stop <컨테이너_ID> # 실행 중인 Airflow 컨테이너 중지 docker-compose up -d # 다시 실행

위 방법으로도 해결되지 않으면 추가적으로 알려주세요!

참고

https://stackoverflow.com/questions/45388141/airflow-cant-connect-to-0-0-0-0-8080

 

Airflow: Can't connect to ('0.0.0.0', 8080)

I am on Ubuntu 16.04,I have installed Airflow with pip. Next step airflow initdb [2017-07-29 12:20:23,483] {__init__.py:57} INFO - Using executor SequentialExecutor DB: sqlite:////home/milenko/air...

stackoverflow.com

 

현재 Docker에서 airflow-setup 접두사를 가진 컨테이너들만 종료하고 learn-airflow 관련 컨테이너들은 유지하려면 다음과 같은 명령어를 사용할 수 있습니다.

  1. airflow-setup 접두사를 가진 컨테이너만 종료하려면 다음 명령어를 실행하세요:이 명령어는 airflow-setup 이름이 포함된 모든 컨테이너의 ID를 필터링하여 한 번에 종료합니다.
  2. bash
    코드 복사
    docker stop $(docker ps -q --filter "name=airflow-setup")
  3. 종료한 airflow-setup 컨테이너를 완전히 삭제하고 싶다면, 다음 명령어로 삭제할 수 있습니다.
  4. bash
    코드 복사
    docker rm $(docker ps -aq --filter "name=airflow-setup")

이제 learn-airflow 관련 컨테이너들만 실행 중인 상태로 유지됩니다.

 

but ._> cli로 수정하지않고 도커 데스크탑으로 ui로 간단하게 해결 가능