인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Mik Leinad님의 프로필 이미지
Mik Leinad

작성한 질문수

초보를 위한 도커 안내서

[개인실습] Nginx를 이용한 정적 페이지 서버 만들기

docker -p 옵션과 Dockerfile의 EXPOSE 차이가 뭔가요?

작성

·

1.3K

1

두 옵션의 차이점이 잘 이해가 되지 않아 질문드립니다..! 

저는 Dockerfile에 

From    nginx:latest

COPY    index.html /user/share/nginx/html

EXPOSE    8000

위와같이 명시한 후

$ docker build -t web:nginx .

$ docker run -d --rm --name nginxweb web:nginx

위와같이 실행하였습니다. 그런데 웹에서 접속 확인 시 재대로 접속이 되지 않아서 (페이지 자체에 요청이 되지 않았습니다..) docker ps 로 확인해보니

PORTS

80/tcp, 8000/tcp

와같이 적혀있고 매핑된것처럼 표시되지 않았습니다.

이후 정답지를 보니 docker run -p 옵션을 사용한것을 확인했는데 두 방법의 차이점과 각 어느상황에서 사용하는 건지 궁금합니다! 

답변 1

0

subicura님의 프로필 이미지
subicura
지식공유자

안녕하세요!

일단, 포트를 연결하는 방법은 "-p"를 사용하는 것입니다.

EXPOSE는 "이런 포트를 사용한다는 설정"만 알려주고 실제로 포트를 연결하지는 않습니다.

그럼 EXPOSE를 안써도 포트 연결이 가능할까요? 네 가능합니다. EXPOSE는 단순히 정보성 설정이라고 보시면 될 것 같습니다.

EXPOSE를 쓰는 이유는 이 컨테이너가 어떤 포트를 사용하는지 알려주고, 만약 전체 포트를 연결하고 싶다면 "-P(대문자)" 옵션이 존재합니다.

감사합니다!

Mik Leinad님의 프로필 이미지
Mik Leinad

작성한 질문수

질문하기