작성
·
642
0
강의를 따라가는중
docker run --rm -p 9000:8000 test_dj
에서 도커를 실행시켰는데 접속페이지가 강의상에선
http://localhost:9000/에서 접속이 가능한데 반해
저는
http://localhost:8000/에서만 접속이 가능합니다
어떤설정을 제가 잘못했길래 이렇게 될까요?
답변 2
0
0
안녕하세요.
도커 컨테이너 내부에 띄운 서버는, 현재 사용하시는 개발머신 (윈도우/맥) 과는 별개로 서버를 띄우시는 것입니다. 그러니 도커 컨테이너 내에서 8000 포트로 서버를 띄우더라도, 개발머신(윈도우/맥)에서는 그 서버에 접속할 수 없습니다.
docker run 시에 -p 9000:8000 옵션의 의미는
도커 컨테이너 내부에서 8000 포트로 서버를 실행하고 있다면,
개발머신(윈도우/맥) 에서 직접 서버를 띄우진 않았지만, 개발머신의 9000 포트로 접속하면 해당 컨테이너의 8000포트로 요청을 전달하겠다라는 의미입니다.
그러니
도커 컨테이너에서 8000 포트로 서버를 띄우시고
-p 9000:8000 옵션으로 개발머신의 9000 포트로 들어오는 요청을 컨테이너의 8000 포트로 전달토록 옵션을 주시고,
그 후에 개발머신의 9000 포트로 접속하시면, 그 요청을 컨테이너의 8000 포트로 돌고 있는 서버에서 받아서 처리하게 되는 것입니다.
현재 localhost:8000 으로 접속이 가능하다고 하시는 것은
도커 컨테이너가 아니라, 개발머신에서 직접 장고 서버를 띄워두신 그 서버에 접속하고 있는 상황이 아닐까요?
살펴보시고, 또 질문 남겨주세요. :-)
화이팅입니다.