해결된 질문
24.01.20 17:14 작성
·
338
1
도커 컨테이너 3개 모두 포트 번호가 다 똑같던데 클라이언트가 만약에 도메인:80번포트를 요청하면 어디로 요청이 가는건가요?
답변 1
1
2024. 01. 20. 17:31
인프런님 안녕하세요, 데브위키입니다.
docker ps 명령을 사용했을 때 조회되는 PORTS는 두 가지 정보를 나타냅니다.
지금 보시는 것처럼 80/tcp이라고만 나와 있을 경우에는 컨테이너에서 실행 중인 소프트웨어가 사용하는 네트워크 포트를 의미합니다.
실습 PC에서 컨테이너에 접근하기 위해서는 포트포워딩이라는 기술을 사용해서 접근해야 합니다. 포트포워딩 기술을 사용하면 아래와 같이 포트 정보가 보이게 됩니다.
간단히 말씀드리자면 클라이언트가 도메인:80으로 접근했을 때, 컨테이너의 80포트로 전달하겠다는 의미인 것이죠.
포트포워딩 설정은 컨테이너를 실행할 때 -p 라는 옵션을 통해서 설정하실 수 있습니다.
multiNginx 실습처럼 포트포워딩을 설정하지 않으면 도메인:80로 접속하실 경우 3개의 컨테이너에 모두 접근이 불가능합니다.
포트포워딩 부분은 네트워크 파트의 섹션6에서 자세하게 정리해 놓았습니다!
강의 구성상 뒤에 배치해 두었지만, 네트워크 기본과 도커네트워크(1,2) 부분을 먼저 수강하셔도 강의 커리큘럼에는 지장이 없으실 것입니다.
좋은 질문 감사드립니다. 강의 들으시면서 궁금하신 점이 생기면 편하게 질문 주세요.
완강까지 응원하겠습니다!
2024. 01. 20. 18:11
아하 그래서 강의 초반에
docker run -p 80:80 --name hellonginx nginx
라고 명령어를 치신게 포트포워딩이고 3개의 컨테이너를 띄울때 왼쪽만 숫자를 다르게 두면 되겠군요. 이해가 됐습니다 감사합니다!