> 운영 및 유지보수 > Docker > Docker가 포트 80을 사용할 수 없는 이유에 대한 해결책에 대해 이야기해 보겠습니다.

Docker가 포트 80을 사용할 수 없는 이유에 대한 해결책에 대해 이야기해 보겠습니다.

PHPz
풀어 주다: 2023-04-10 15:27:22
원래의
3784명이 탐색했습니다.

Docker는 배포, 실행 및 관리를 위해 애플리케이션을 컨테이너로 쉽게 패키징할 수 있는 오픈 소스 애플리케이션 컨테이너 엔진입니다. 그러나 Docker를 사용하여 애플리케이션을 배포할 때 포트 80을 사용할 수 없는 문제가 발생하는 경우가 있습니다. 이 기사에서는 이 문제를 해결하기 위한 몇 가지 솔루션을 소개합니다.

문제 설명

Docker를 사용하여 애플리케이션을 배포할 때 애플리케이션을 포트 80에서 실행해야 하는 경우 일반적으로 다음 오류 메시지가 나타납니다.

Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.
로그인 후 복사

이 오류 메시지는 다른 프로세스가 이미 포트 80을 사용하고 있으므로 Docker가 이 포트는 사용할 수 없습니다.

Solution

Docker가 포트 80을 사용할 수 없는 문제를 해결하는 몇 가지 방법은 다음과 같습니다.

1. 80번 포트를 점유하고 있는 프로세스를 중지합니다

80번 포트를 점유하고 있는 프로세스를 확인하고 Docker가 이 포트를 사용할 수 있도록 프로세스를 중지할 수 있습니다. 다음은 Linux 시스템에서 포트 80을 점유하는 프로세스를 중지하는 단계입니다.

  1. 다음 명령을 실행하여 포트 80을 점유하는 프로세스 ID를 확인합니다.

    sudo lsof -i:80
    로그인 후 복사
  2. 프로세스 ID에 해당하는 프로세스 보기:

    sudo ps -p [PID]
    로그인 후 복사
  3. 프로세스 중지 :

    sudo kill [PID]
    로그인 후 복사

2. Docker 매핑 포트 수정

포트 80을 점유하는 프로세스를 중지하는 것 외에도 포트 80을 점유하는 프로세스와의 충돌을 피하기 위해 Docker 매핑 포트를 수정할 수도 있습니다.

애플리케이션이 로컬 포트 ​​8080에서 수신 대기하고 있고 Docker 컨테이너의 80 포트를 로컬 8080 포트에 매핑한다고 가정하면 다음 명령을 사용하여 Docker 컨테이너를 시작할 수 있습니다.

sudo docker run -p 8080:80 [image name]
로그인 후 복사

이런 식으로, Docker는 포트 80을 로컬 포트 ​​8080에 매핑하여 브라우저에서 애플리케이션에 액세스할 수 있도록 합니다.

3. Nginx 프록시 사용

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿