Docker는 배포, 실행 및 관리를 위해 애플리케이션을 컨테이너로 쉽게 패키징할 수 있는 오픈 소스 애플리케이션 컨테이너 엔진입니다. 그러나 Docker를 사용하여 애플리케이션을 배포할 때 포트 80을 사용할 수 없는 문제가 발생하는 경우가 있습니다. 이 기사에서는 이 문제를 해결하기 위한 몇 가지 솔루션을 소개합니다.
Docker를 사용하여 애플리케이션을 배포할 때 애플리케이션을 포트 80에서 실행해야 하는 경우 일반적으로 다음 오류 메시지가 나타납니다.
Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.
이 오류 메시지는 다른 프로세스가 이미 포트 80을 사용하고 있으므로 Docker가 이 포트는 사용할 수 없습니다.
Docker가 포트 80을 사용할 수 없는 문제를 해결하는 몇 가지 방법은 다음과 같습니다.
80번 포트를 점유하고 있는 프로세스를 확인하고 Docker가 이 포트를 사용할 수 있도록 프로세스를 중지할 수 있습니다. 다음은 Linux 시스템에서 포트 80을 점유하는 프로세스를 중지하는 단계입니다.
다음 명령을 실행하여 포트 80을 점유하는 프로세스 ID를 확인합니다.
sudo lsof -i:80
프로세스 ID에 해당하는 프로세스 보기:
sudo ps -p [PID]
프로세스 중지 :
sudo kill [PID]
포트 80을 점유하는 프로세스를 중지하는 것 외에도 포트 80을 점유하는 프로세스와의 충돌을 피하기 위해 Docker 매핑 포트를 수정할 수도 있습니다.
애플리케이션이 로컬 포트 8080에서 수신 대기하고 있고 Docker 컨테이너의 80 포트를 로컬 8080 포트에 매핑한다고 가정하면 다음 명령을 사용하여 Docker 컨테이너를 시작할 수 있습니다.
sudo docker run -p 8080:80 [image name]
이런 식으로, Docker는 포트 80을 로컬 포트 8080에 매핑하여 브라우저에서 애플리케이션에 액세스할 수 있도록 합니다.
Docker가 포트 80을 사용할 수 없는 문제를 해결하는 또 다른 방법은 Nginx 프록시를 사용하는 것입니다. 포트 80에서 수신 대기하고 Docker 컨테이너의 다른 포트로 트래픽을 전달하도록 Nginx를 구성할 수 있습니다. 다음은 간단한 구성 예입니다.
http { server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
이 예에서 Nginx는 포트 80에서 수신 대기하고 포트 8080의 Docker 컨테이너로 트래픽을 전달합니다.
위는 Docker가 포트 80을 사용할 수 없는 문제를 해결하는 세 가지 방법입니다. 실제 상황에 따라 적합한 방법을 선택하시면 됩니다. Docker를 사용하여 애플리케이션을 배포할 때 불필요한 문제를 피하기 위해 포트 충돌에 주의해야 합니다.
위 내용은 Docker가 포트 80을 사용할 수 없는 이유에 대한 해결책에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!