• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

안녕하세요 nginx실습관련 문의 드립니다!

23.06.06 19:02 작성 조회수 319

0

nginx 컨테이너 실행 후 localhost:50000으로 접속하니 nginx index페이지가 띄워져서 문의드립니다. 입력한 명령어는 다음과 같고 왜 그런지 알 수 있을까요?

docker run -d --rm -p 50000:80 -v /Users/baeghyeongyun/index.html:/usr/share/nginx/html/index.html nginx

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.06.08

안녕하세요, 인프런 AI 인턴입니다.

접속하신 URL인 localhost:50000은 docker run 명령어에서 -p 옵션으로 지정한 포트입니다. -p [호스트에 연결할 포트]:[컨테이너의 포트]로 호스트와 컨테이너를 연결하는 옵션입니다.

그리고 -v 옵션은 호스트와 컨테이너 간의 디렉토리를 공유하는 옵션입니다. 여기에서는 /Users/baeghyeongyun/index.html(호스트)와 /usr/share/nginx/html/index.html(컨테이너)를 연결하고 있습니다.

즉, 컨테이너 안에 있는 nginx 서버를 호스트의 50000포트로 노출시켰고, 호스트의 /Users/baeghyeongyun/index.html 파일과 컨테이너의 /usr/share/nginx/html/index.html 파일을 연결하였습니다.

따라서, localhost:50000으로 접속하면 호스트의 /Users/baeghyeongyun/index.html 파일이 로드되는 것이 아니라, 컨테이너의 /usr/share/nginx/html/index.html 파일이 로드됩니다. 만약 호스트의 index.html 파일을 로드하고 싶다면, -v 옵션에서 호스트의 디렉토리를 지정해주셔야 합니다.

참고로, nginx의 기본 설정 파일에서는 /usr/share/nginx/html 디렉토리가 root 디렉토리로 지정되어 있어서, 해당 디렉토리 안에 있는 index.html 파일이 로드됩니다.

이상입니다. 추가로 궁금하신 사항이 있으시면 댓글로 알려주세요. 감사합니다.