3030 포트 질문
11분 50초에 3030을 사용하는 포트가 없기 때문에 정상적인 응답이 오지 않는다고 말씀하셨는데요, envnodecolorapp 내부적으로 3000 포트를 사용한다고 명시했기 때문에 응답이 오지 않는게 맞나요? 3030은 왜 사용이 불가한지 이해가 잘 가지 않습니다
Answer 2
0
tjrwn0716님 안녕하세요. 데브위키입니다.
먼저 3030포트로 정상적인 응답이 오지 않는 이유는 내부에서 실행되는 nodecolorapp이 3000포트를 사용하기 때문입니다! 포트는 애플리케이션이 정보를 받아들이는 통로이고, 애플리케이션 소스코드 내에 직접 지정되어 있습니다. 따라서 nodecolorapp은 3000이 아닌 포트의 요청은 받을 수 없도록 개발되어 있습니다.
아래는 nodecolorapp의 소스 코드 중 일부입니다. 포트 3000번이 코드 내에 지정되어 있습니다.
app.listen(3000, () => {
console.log(`Simple Node.js web app is running at http://localhost:3000`);
});
inspect로 확인하셨을 때 3030에 8002번이 세팅된 이유는, 말씀해주신 대로 run 명령으로 컨테이너를 실행하실 때 -p 8002:3030으로 포트포워딩하셨기 때문입니다. 3000은 Dockerfile에 EXPOSE로 3000이 되어있기 때문에 기본적인 포트로 나타나지만 포트포워딩하지 않았기 때문에 null로 표시됩니다.
결론적으로 Dockerfile에서 EXPOSE로 포트를 지정하는것과 애플리케이션이 실제로 사용하는 포트는 다르다는 것이 중요한 포인트로 보입니다!
도커파일에서 EXPOSE로 포트를 명시하는 것은 말 그대로 애플리케이션이 사용하는 포트를 표시만 하는는 것입니다. 실제로 애플리케이션이 받아들이는 포트는 소스 코드 내에 지정되어 있습니다. 그래서 포트포워딩을 하실 경우에는 실제 애플리케이션이 사용하는 포트로 포트포워딩을 하셔야 정상적으로 동작이 가능합니다.
혹시 이해가 잘 되지 않으셨거나 더 궁금하신 점 있으시면 편하게 질문해주세요!
0

inspect 시에 아래와 같이 3000은 null 이고 3030에 세팅이 된 이유를 잘 모르겠습니다(run시에 8002:3030으로 주어서 된건 알지만, 3000에 null이 들어가고 3030에 세팅된 이유를요 !)
33강 도커 빌드 강의의 docker file
0
35
1
개발환경에서 도커 설정
1
95
2
vscode 터미널 설정 관련 질문
0
95
1
쿠버네티스 강의 언제 나오나요..
2
127
2
postgresql-repmgr:15 지원 종료에 따른 대체 이미지 변경 질문드립니다!
1
181
2
섹션 9. 레이어 관리에서 alpine OS 사용 관련 질문 있습니다!
1
68
2
도커 가상 네트워크와 Stateless 특징 관련 질문
1
74
2
우분투 설치
0
68
2
도커 보안을 실무에서 어떻게 대비하시는지 궁금합니다.
1
231
2
컨테이너를 활용한 개발환경 통일에 관하여
1
91
2
k8s 강의 일정
1
113
2
컨테이너의 Stateless 제약 관련 질문
0
96
1
docker push 하는 중 "single-platform image ..." 메세지가 나오고, docker hub에 image와 tag가 정상적으로 등록되지 않습니다.
2
97
1
docker pull [이미지] 다운로드시 에러 해결 방법 문의
1
438
2
강의 재생 오류
1
86
1
Remote JVM Debug Setting
1
105
1
빌드 방식에 대해 질문 있습니다.
1
99
2
컨테이너 레이어 질문 있습니다.
1
106
1
컨테이너 가상화 호스트 OS
1
154
2
강의 이미지 사용
1
168
2
도커컴포즈 오류
0
158
2
USER 명령어와 관련하여 질문드립니다
1
112
1
강의 예정
1
177
2
실행오류
1
213
3

