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

Palmtreehouse님의 프로필 이미지
Palmtreehouse

작성한 질문수

실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기

도커에 대한 오해와 정정

도커를 설명한기 위한 이미지에 관한 질문입니다

해결된 질문

작성

·

150

0

  • 안녕하세요. 도커에 최근 관심을 가지고 거의 처음 접하는 수강생입니다. 방금 도커에 대한 오해와 정정 강의를 들었는데 강사님께서 들의셨던 강의의 강사님께서는 왜 os시스템이 없다고 하신 걸 까요? 그 강사님이 잘모르시는 부분이신걸까요?

  • 그리고 왜 도커 홈페이지에서도 유저 스페이스를 빼고 이미지를 첨부/설명 하고 있을까요? 그냥 저희가 없다고 생각해야 이해하기 쉬워서 그런 것일까요? 아님 다른 이유가 있는건가요?

     

     

답변 1

0

다니엘님의 프로필 이미지
다니엘
지식공유자

Parmtreehouse님 안녕하세요. 수업에 관심을 가지고 학습해 주셔서 감사합니다.

 

두번 째 질문에 대해서 먼저 답변을 아래와 같이 해 보도록 하겠습니다. 😊

 

도커 홈페이지의 이미지에서 과감히 유저 스페이스를 제외하고 설명한 이유를 짐작해보자면 기술적으로 디테일하게 설명하기 보다는 마케팅적으로 쉽게 도커의 장점 (Lightweight)을 표현하기 위한 의도인 것 같습니다.

Lightweight: Containers share the machine’s OS system kernel and therefore do not require an OS per application, driving higher server efficiencies and reducing server and licensing costs.

위의 의미를 잘 살펴보면 Kernel이 없다라고 표현하지 않고 Kernel을 공유(share)한다고 표현되어 있습니다. 좀 더 의미를 분석해보면 어딘가에는 반드시 Kernel이 있어야 한다고 이해할 수 있습니다.

도커 홈페이지에서는 User Space의 개념, Kernel의 개념 등을 설명하는 것보다는 도커를 처음 접하는 사람들도 도커 컨테이너는 Kernel을 포함하지 않기 때문에 가볍다는 것을 이해할 수 있도록 과감히 일러스트레이션 이미지에서 컨테이너가 App만 포함하도록 표현한 것으로 보여집니다.

하지만 학습자 입장에서 도커 컨테이너에 User Space가 포함되어 있다고 이해하는 것은 큰 도움이 됩니다. User Space는 기본적으로 리눅스 환경이기 때문에 도커 컨테이너에서 거의 모든 리눅스 명령어들을 실행할 수 있습니다.

그래서 도커를 잘 다루기 위해서는 리눅스 명령어에 좀 더 익숙해 질 필요가 있고 강의의 후반부에서 리눅스에 대한 내용도 중점적으로 다루게 됩니다. 강의를 꼭 끝까지 완강하실 수 있도록 응원하고 언제든지 지원하겠습니다.😊

본론으로 돌아오면 도커 홈페이지에서 내용을 기술하신 분도 강의자인 저도 도커 아키텍쳐의 내용을 이해하지 못한다고 생각하지 않습니다. 다만 어떤 관점으로 접근했는지 차이가 있을 뿐인 거 같습니다. 도커 홈페이지에서 내용을 작성하신 분은 마케팅적인 관점에서 도커의 Lightweight를 도커를 처음 접하는 분이 빠르게 (예를 들어 5분 이하의 시간동안) 이해할 수 있도록 초점을 맞춘 것으로 보여지고 저는 강의에서 내용을 보다 Detail하게 상대적으로 좀 더 긴 시간을 할애해서 설명했습니다.

 

첫번 째 질문에 대한 답을 하면 다른 강의자의 내용을 판단하는 것이니 조금 조심스럽기는 하지만, 강의자 분이 도커 홈페이지 (https://www.docker.com/resources/what-container/) 에 있는 의도와 다른 방향으로 내용을 전달한 것 같습니다. 도커 홈페이지의 목적은 마케팅 차원으로 간략하게 도커의 장점을 설명하려는 의도였는데 이 것을 강의자분께서 기술적 차원으로 해석해서 전달해서 발생했던 상황인 것 같습니다. 사실 Kernel은 OS의 한 구성 요소인데 일부의 블로그나 유투브 등에서도 도커 컨테이너는 OS를 포함하지 않는다고 설명하는데 이 부분이 이제 처음 도커를 공부하시는 분들에게 혼선을 일으키게 됩니다. Kernel은 OS의 구성요소인데 Kernel = OS라고 해석하는 순간 위와 같은 결론에 도달하게 됩니다. 저 역시도 도커를 처음 공부할 때 겪었던 상황입니다.

Parmtreehouse 님께서는 도커 컨테이너가 OS를 포함하지 않는다고 이해하시지 마시고 OS는 User Space와 Kernel로 이루어져 있는데 컨테이너는 Kernel을 포함하지 않지만 OS의 User Space 부분은 포함한다고 이해해 주세요.

 

혹시 추가적인 학습의 기회가 되시면 Docker User Space로 구글에서 검색하시고 User Space가 경우에 따라서 Bins/Libs로 표현되어 있는 것만 주의하시면 자료들을 통해서 이해를 확장해 나가실 수 있을 겁니다. 이 과정에서 이해가 되지 않는 부분이 있으시면 언제든지 주저하지 마시고 추가 질문해 주세요.

 

이상이었습니다.

행복한 하루 되세요.

 

Cheers!

다니엘 드림 😊

 

Palmtreehouse님의 프로필 이미지
Palmtreehouse

작성한 질문수

질문하기