해결된 질문
작성
·
1K
1
맥에서 iterm에 접속하고 docker -version을 치면 docker server의 os가 linux로 나와있어서 그때부터 의문점이 생겨 질문드립니다.
도커가 리눅스 커널(Namespace, Cgroups)를 활용하여 컨테이너를 만들고 관리하는 것 같습니다. 그런데 맥에서는 어떻게 이게 가능한건지 궁금합니다.
제 예상으로는 도커 데스크탑이 어떤 기술에 의해 리눅스명령을 도커에 실행하면 도커가 명령을 받고 필요한 시스템 콜을 요청할때 도커 데스크탑이 맥 os가 알아들을 수 있게 변환작업을 하는 것같은데 맞는 걸까요?
답변 1
1
인프런님 안녕하세요, 데브위키입니다.
도커 데스크탑의 실행 구조에 대해 궁금한 점이 생기셨군요. 좋은 질문 감사드립니다.
실제로 도커는 리눅스의 커널의 기술을 활용하기 때문에, 윈도우와 맥OS는 기본적으로 지원하지 않습니다.
그래서 도커 데스크탑(Docker Desktop)은 윈도우나 맥OS의 하이퍼바이저 가상화 기술을 사용하고 있는데요.
윈도우/맥OS에서 리눅스 가상머신을 실행한 다음에, 그 리눅스의 커널을 사용해서 컨테이너 환경을 구성하는 것입니다.
컨테이너 가상화 기술을 사용하기 위해 하이퍼바이저 가상화 기술을 활용하는 것이죠.
이 설명을 그림으로 표현하면 아래와 같습니다.
윈도우에서는 WSL2, 맥OS에서는 HyperKit이라는 가상화 기술을 사용한답니다.
그래서 docker version이라는 명령어를 사용했을 때, 이 명령어를 받아서 실행하는 도커 데몬은 실습PC에서 실행 중인 것이 아니라, 리눅스 가상머신에서 실행 중이기 때문에 OS가 linux로 보이는 것입니다.
질문에 답변이 되셨는지요? 강의 들으시면서 궁금하신 점이 생기면 편하게 질문 주세요.
완강까지 응원하겠습니다!
추가로 정보를 드리자면, 윈도우에서는 도커 데스크탑 없이 윈도우 네이티브 컨테이너를 사용하실 수 있는 방법도 있습니다. 윈도우 네이티브 컨테이너를 사용하면, 리눅스처럼 Windows OS의 커널을 사용해 컨테이너를 생성하고 실습할 수 있습니다.
다만 대부분의 컨테이너 운영환경은 리눅스가 대부분이기 때문에, 실습 PC로 윈도우를 사용하시더라도 도커 데스크탑을 사용해 리눅스용으로 학습하시는 것이 좋은 방법이라고 생각됩니다.
관련 링크도 함께 공유 드립니다 ☺
https://learn.microsoft.com/ko-kr/virtualization/windowscontainers/about/
와..확실하게 그림과함께 알려주셔서 이해가되었습니다. 정말 감사드립니다!