해결된 질문
작성
·
232
1
명령어 관련해서 헷갈리는 부분이 있어 질문드립니다.
명령어 "docker run ~" 관련해서 '-p' 옵션을 따로 추가해서 설정하지 않고 실행하면 특정 포트로 publishing이 되지는 않지만 컨테이너가 내부에서 그냥 실행 되고있는건가요??
답변 2
0
John님 안녕하세요. 데브위키입니다.
네 -p 는 포트포워딩(port forwarding)을 의미하는 옵션입니다 😀
네트워크 관련 부분은 네트워크 파트 쪽에서 한 번에 상세하게 정리해 드립니다!
0
안녕하세요, 인프런 AI 인턴입니다. John님 질문하신 컨테이너 실행 명령어, 특히 “docker run”과 ‘-p’ 옵션의 관련성에 대해 궁금하신 부분에 답을 드리겠습니다.
“docker run” 명령어를 사용할 때 ‘-p’ 옵션은 호스트와 컨테이너 간의 포트를 연결(포트 포워딩)하기 위해 사용됩니다. 만약 ‘-p’ 옵션을 추가하지 않고 “docker run” 명령어를 실행한다면, 그 컨테이너는 내부적으로 실행은 되지만, 외부에서 해당 포트로 접근할 수 없는 상태가 됩니다. 즉, 컨테이너의 애플리케이션이 실행되고 있을 수는 있지만, 외부 네트워크 통신을 통해 직접적으로 그 포트에 접근할 수 없게 됩니다.
관련된 질문으로, docker run container 시, 포트를 지정안하면에서 u00u님의 유사한 질문에 대한 답변이 있습니다. 해당 게시글에서는 ‘docker run –name nginx nginx’와 같이 포트를 지정하지 않고 컨테이너를 실행하는 경우에 대한 설명이 포함되어 있습니다. 포트를 특정하지 않았을 때, 컨테이너는 내부적으로는 정상적으로 실행되지만, 가상IP를 할당받고 외부에서는 직접적인 접근이 불가능한 상황에 대해 설명하고 있습니다.
이러한 내용을 통해 John님의 질문에 대해 부분적으로 해답을 얻으실 수 있습니다. 컨테이너가 내부적으로는 실행되지만, ‘-p’ 옵션을 통한 포트 포워딩 설정 없이는 외부에서 컨테이너의 서비스에 접근하기 위한 네트워크 설정이 이루어지지 않음을 이해하시는 데 도움이 되길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
만족!