인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

teho.lee200님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

컨테이너 가상화

컨테이너 가상화 호스트 OS

작성

·

19

0

안녕하세요! 강의 유익하게 듣고 있는 수강생입니다.

컨테이너 가상화 설명에서 궁금증이 생겨 글 남깁니다.

(강의 장면 캡쳐가 불가하여 유사 그림으로 대체합니다!!)

image.png

 

도커는 호스트 OS의 커널을 바로 사용한다는 장점이 있다고 이해했습니다. 이때 여기서 호스트 OS가 리눅스라고 명시되어있는데 mac, windows를 사용하는 일반 사용자들도 호스트 os가 리눅스로 적용되는 것일 까요??

해당 내용을 찾아보니 도커를 사용할 때는 리눅스 커널이 필수적으로 필요해서 가상화된 Linux를 내부적으로 사용한다고 확인했습니다.

이 내용을 리눅스 환경이 아닌경우 도커 내부에 리눅스가 가상화 기술로 적용되어 있다고 이해하는 것이 맞을까요??

내장되어 있는 것이 맞다면 컨테이너 별로 리눅스가 별도로 포함되는것인지, 도커위에 하나의 리눅스OS를 갖고 있는 것인지 질문드리고 싶습니다!

유익한 강의 정말 감사드립니다 😀

답변 1

0

인프런 AI 인턴님의 프로필 이미지

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

도커 컨테이너 가상화 기술과 그 작동 방식에 대해 흥미로운 질문을 주셨네요. 도커는 리눅스 커널의 기능을 기반으로 한 컨테이너 가상화 기술이며, 이는 컨테이너가 호스트 OS의 커널을 직접 사용함으로써 VM 방식에 비해 훨씬 가볍고 빠르게 동작할 수 있게 해줍니다.

도커와 호스트 OS

  1. 호스트 OS의 역할:

    • 도커는 실제로는 호스트 OS의 커널을 사용하는 방식으로 작동합니다. 따라서 리눅스 기반의 시스템에서는 자연스럽게 리눅스 커널을 활용하여 컨테이너가 실행됩니다.
  2. Mac과 Windows에서의 도커 사용:

    • 대부분의 Mac 및 Windows 사용자의 경우, 기본적으로는 리눅스 기반의 컨테이너를 실행해야 하기 때문에 Docker Desktop이라는 소프트웨어를 사용하여 Windows Subsystem for Linux (WSL) 또는 내부의 가상화 엔진(LinuxKit 등)을 통해 리눅스 커널 환경을 제공합니다. 이러한 방식으로 Mac과 Windows 시스템에서도 리눅스 기반 도커 컨테이너가 동작할 수 있습니다.
    • 따라서, 비리눅스 환경에서는 사용자 몰래 백그라운드에서 리눅스 VM이 실행되며, 이 리눅스 커널 위에서 모든 컨테이너가 실행되는 것입니다. 즉, 여러 컨테이너가 하나의 리눅스 커널을 공유하는 구조입니다.

컨테이너와 리눅스 커널의 관계

  • 각 컨테이너별로 리눅스가 포함되나요?:
    • 컨테이너는 각자 운영체제의 전체 스택을 포함하지 않고, 호스트 OS의 커널을 공유하는 방식으로 작동합니다. 그러므로 컨테이너마다 개별적인 리눅스 커널이 포함되지는 않습니다. 대신 모든 컨테이너는 동일한 리눅스 커널을 기반으로 독립된 사용자 공간을 가집니다.

추가적으로 알면 좋은 정보:

  • Docker Desktop: Docker Desktop은 실제 사용자가 손쉽게 도커를 다양한 운영체제에서 사용할 수 있게 해주는 도구입니다. Mac과 Windows에서는 Docker Desktop이 리눅스의 가상화 레이어를 제공하게 되죠.
  • 리눅스와 Docker의 관계: Docker는 리눅스 컨테이너 기술에 기반하고 있어, Docker의 핵심은 리눅스 커널의 다양한 기능(네임스페이스, cgroups 등)을 활용하여 경량화된 격리 환경을 조성하는 것입니다.

관련하여 더 자세한 설명은 “맥에서는 도커를 어떻게 사용하는건가요?” 질문에 대한 답변을 참고하시면 큰 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.