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

kasaxat183님의 프로필 이미지
kasaxat183

작성한 질문수

개발자를 위한 쉬운 도커

Leafy 네트워크

도커의 네트워크 사용에 대한 궁금증이 있습니다.

해결된 질문

작성

·

240

1

강사님 덕분에 너무 좋은 양질의 강의를 잘 듣고 있습니다 !
여러번 반복해서 강의를 수강하다 보니 처음 들을 땐 안생기던 궁금 증이 생겨 질문 드립니다.

도커의 네트워크 기술이 있는 이유가 궁금합니다.
강의 수강 이전에는 도커에 대한 이해 없이 늘 새로운 소프트웨어(Redis나 DB등등)를 사용할때 구글링을 하여 도커 명령어를 블로그에서 사용법을 가볍게 익힌채 사용을 했습니다.

그 과정에서 늘 -p 옵션을 사용해 포트 포워딩을 했었습니다.

이렇게 1년간 주먹 구구식으로 사용만 했다가 이번 파트인 네트워크 강의를 듣게 되었는데 본질적으로 '네트워크'라는 개념을 어떻게 사용하는거지 ? 라는 생각이 들었습니다.

컨테이너를 구축할 때 마다 -p 옵션을 강제하도록 하면 네트워크라는 개념이 필요가 없지 않나..(?)라는..

그래서 혹시 이런 네트워크의 개념이 필요한 예시나 이후 더 고도화된 기술스택에 사용되는 내용을 알수 있을까요 ?
(혼자 생각해본 결과 컨테이너간 통신을 하면 안되는 상황 ? 에서 해당 네트워크 개념을 사용해야할꺼 같긴한데 굳이 왜 그런 상황이 생기는 지 또한 의문입니다 !!)



 


답변 2

1

안녕하세요, 인프런 AI 인턴입니다.

kasaxat183님의 질문에 대해 도움이 될만한 정보를 찾았습니다. 도커의 네트워크 사용과 관련하여 궁금하신 점에 대해 “docker 실행시 네트워크 질문”에 있는 답변이 조금이나마 해결책을 제시할 수 있을 것 같습니다.

이 답변에서는 도커 컨테이너 실행 시 --network 옵션을 지정하지 않으면, 기본적으로 ‘bridge’ 네트워크에 컨테이너가 실행된다는 내용입니다. ‘bridge’는 도커 설치 시 자동으로 구성되는 기본 네트워크로, 이를 기반으로 컨테이너 간의 통신 및 도커 호스트와의 통신 방법이 설명되어 있습니다. 이를 통해 네트워킹의 기본 개념과 왜 네트워크 옵션이 필요한지에 대한 이해를 돕고 있습니다.

또, 네트워크의 본질적인 의미와 사용 예시를 더 잘 이해하고자 하신다면, “서버가 각각 구성된 실무에선 컨테이너가 어떻게 사용되는지 궁금해요”에서 도커를 실제 운영 환경에 적용하는 과정에 대한 통찰을 얻을 수 있습니다. 이 내용에서는 컨테이너 기술을 배포와 운영에 어떻게 활용하는지, 그리고 네트워크와 포트포워딩이 어떤 역할을 하는지에 대한 실제 사례와 설명이 포함되어 있습니다.

네트워크의 본질적인 이유와 포트포워딩, 여러 컨테이너 간의 통신 등에 대한 깊은 이해를 돕기 위한 이 두 답변 링크는 kasaxat183님의 궁금증을 일부 해소할 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

데브위키님의 프로필 이미지
데브위키
지식공유자

kasaxat183님 안녕하세요. 데브위키입니다.

먼저 말씀하신대로 대부분 -p옵션을 사용하다보니 그런 의문이 드실 수도 있을 것 같습니다!

다만 -p 옵션은 호스트OS또는 외부에서 컨테이너에 접근을 하기 위한 용도입니다. 근본적으로는 컨테이너간의 통신이 먼저 이루어져야 하는 것이죠. 강의를 수강하시다 보면 네트워크 파트에서 외부 접근을 차단시키는 케이스가 기억나실 것입니다! 예를 들어 DB서버는 실습PC나 외부에서 접근할 필요가 없기 때문에, 외부 접근을 차단시키고 컨테이너간의 통신으로 구성했었습니다. 여기서도 도커 네트워크가 없었다면 컨테이너가 IP를 할당받고, 서로 통신할 수 있는 체계 자체가 없다고 봐야합니다. 더 나아가 실무 파트에서는 백엔드 컨테이너로의 접근도 차단해서 오로지 프론트앤드 웹 서버로만 외부 접근이 이루어지도록 구성했었습니다.

 

이렇게 도커의 네트워크는 컨테이너가 IP를 할당받고 서로 통신하게 만들어주는 필수 기술이라고 볼 수 있습니다. 나아가 Kubernetes 에서도 컨테이너간 통신에서 필수로 구성되어야 하는 기술입니다.

 

혹시 아직 잘 이해가 안되셨거나, 더 궁금하신 부분이 있으면 편하게 질문해주세요!

 

 

 

kasaxat183님의 프로필 이미지
kasaxat183
질문자

아아 너무 간단하게 컨테이너를 실행만 하여 프로젝트를 하다보니 외부 접근을 차단시키는 케이스와 쿠버네티스를 생각치 못했네요 !!

자세하고 상세한 답변 너무너무 감사합니다 !

kasaxat183님의 프로필 이미지
kasaxat183

작성한 질문수

질문하기