작성
·
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
안녕하세요!
일단, 포트를 연결하는 방법은 "-p"를 사용하는 것입니다.
EXPOSE는 "이런 포트를 사용한다는 설정"만 알려주고 실제로 포트를 연결하지는 않습니다.
그럼 EXPOSE를 안써도 포트 연결이 가능할까요? 네 가능합니다. EXPOSE는 단순히 정보성 설정이라고 보시면 될 것 같습니다.
EXPOSE를 쓰는 이유는 이 컨테이너가 어떤 포트를 사용하는지 알려주고, 만약 전체 포트를 연결하고 싶다면 "-P(대문자)" 옵션이 존재합니다.
감사합니다!