728x90
개요
이전 포스팅에서는 Docker의 EXPOSE 명령어와 run -p 명령어의 차이점 및 주의사항에 대해 알아보았습니다.
이번에는 실제로 EXPOSE 명령어만으로는 포트 연결이 되지 않는지, 반드시 run -p 명령어와 함께 사용해야 하는지 확인해보겠습니다.
개요
먼저 테스트를 위한 간단한 Dockerfile을 만들어 보겠습니다.
FROM node
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 80
CMD [ "node","server.js" ]
- 위 Dockerfile을 기반으로 먼저 이미지를 생성합니다.
- 생성된 이미지를 기반으로 컨테이너를 실행하여 서버를 실행해보겠습니다.
컨테이너가 정상적으로 실행되고 있지만 실행 안되는 것을 확인할 수 있습니다. 이는 포트 매핑 설정이 누락되었기 때문입니다.
Dockerfile의 EXPOSE 80 명령어는 단순히 문서화 목적일 뿐, 실제 포트 연결에는 영향을 주지 않습니다.
docker run -p 3000:80 87b5d593d1c8
따라서 컨테이너를 실행할 때는 -p 플래그를 사용하여 로컬 포트와 컨테이너 내부 포트를 연결해야 합니다.
위 명령어에서 콜론(:) 왼쪽의 3000은 호스트의 포트 번호이고, 오른쪽의 80은 컨테이너 내부의 포트 번호입니다.
포트 매핑을 하고 난 뒤 localhost에 들어가보면 정상적으로 나오는 것을 확인할 수 있습니다.
이처럼 EXPOSE는 컨테이너가 사용할 포트를 문서화하여 다른 개발자들과의 협업을 돕고, -p 옵션은 실제로 컨테이너의 포트를 호스트 시스템에 연결하여 외부 접근을 가능하게 합니다.
'TIL,일일 회고' 카테고리의 다른 글
[백준, 1966번] 프린터 큐 (Queue 큐, PriorityQueue 우선순위 큐, Java) (0) | 2024.12.16 |
---|---|
[TIL, 일일 회고] 2024.12.15 - Docker ID 축약 기능 알아보기 (0) | 2024.12.15 |
[TIL, 일일 회고] 2024.12.13 - GitLab 파이프라인 배포 지연 현상과 EC2 관련 문제 해결하기 (0) | 2024.12.13 |
[TIL, 일일 회고] 2024.12.12 - Backtracking 알고리즘에서 visited 배열을 사용해야 할까❓ (0) | 2024.12.12 |
[TIL, 일일 회고] 2024.12.11 - 정렬 방식의 이해: 오름차순, 내림차순, 비내림차순, 비증가순 (0) | 2024.12.11 |