![[도커 #3] 도커 작동원리](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog-custom%3Ftitle%3D%255B%25EB%258F%2584%25EC%25BB%25A4%2B%25233%255D%2B%25EB%258F%2584%25EC%25BB%25A4%2B%25EC%259E%2591%25EB%258F%2599%25EC%259B%2590%25EB%25A6%25AC%26tag%3DTemplate%2B1%26description%3D%26template%3D3%26backgroundImage%3Dhttps%253A%252F%252Fsource.inblog.dev%252Fog_image%252Fdefault.png%26bgStartColor%3D%2523a8e8ec%26bgEndColor%3D%2523a8e8ec%26textColor%3D%2523000000%26tagColor%3D%2523000000%26descriptionColor%3D%2523000000%26logoUrl%3D%26blogTitle%3DGyeongwon%2527s%2Bblog&w=2048&q=75)
1. 커널(Kernel)이란
운영체제의 핵심으로, 다음을 담당한다:
- CPU, 메모리, 파일 시스템, 입출력 장치 등 자원 관리
- 하드웨어와 소프트웨어 사이의 다리 역할
- 항상 메모리에 상주, 컴퓨터가 켜질 때부터 작동
도커는 이 커널을 공유하며, 위에서 사용자 공간만 가상화하는 구조임.

2. 도커는 “진짜 플랫폼 전환 도구”가 아니다
- 도커는 새로운 운영체제를 부팅하거나, 커널을 바꾸는 게 아니다.
- 도커는 호스트 OS의 커널을 그대로 사용하고,
- 그 위에 “다른 환경처럼 보이게 하는 격리 공간(User Space)”를 만든다.
즉, 도커는 실제로는 호스트 커널을 공유하며, 속이기 기술(Fake Environment)을 사용하는 것이다.
3. 도커는 어떻게 격리 환경을 흉내낼까 ?
컨테이너는 커널을 공유한다
- 리눅스 호스트에선 리눅스 컨테이너만
- 윈도우 호스트에선 윈도우 컨테이너만
🚫 커널 자체는 절대 바뀌지 않는다.
User Space를 격리해 실행
- 전체 OS를 가상화하지 않음
- 오직 격리된 프로세스 공간(User Space)만 만들어서 라이브러리, 바이너리만 덮어씌움
다양한 이미지(ubuntu, alpine, python)를 써도 전부 호스트 OS의 커널 위에서만 실행

4. 내 컴퓨터가 Window or MacOS 일때
1. 내 컴퓨터가 Windows일 때
상황
- OS: Windows 10/11
- 실행:
docker run -it ubuntu
내부 작동 원리
- Docker Desktop이 자동으로 WSL2(Windows Subsystem for Linux) 기반 리눅스 커널을 실행
- 해당 커널 위에서 Ubuntu 컨테이너가 돌아감
- Ubuntu처럼 보이는 격리 환경이지만,
실제로는 WSL2 리눅스 커널이 모든 시스템 호출을 처리
- 사용자는 마치 리눅스 우분투를 사용하는 것처럼 CLI에서 작업 가능
시각 요약
🪟 Windows (NT 커널)
└─ Docker Desktop
└─ WSL2 (리눅스 커널)
└─ Ubuntu 컨테이너
2. 내 컴퓨터가 macOS일 때
상황
- OS: macOS (Darwin 기반 커널)
- 실행:
docker run -it ubuntu
내부 작동 원리
- Docker Desktop이 자동으로 LinuxKit 기반 경량 가상머신(VM) 실행
- 해당 VM 내부에 진짜 리눅스 커널이 있음
- 그 위에서 Ubuntu 컨테이너가 실행됨
- 사용자는 마치 리눅스를 쓰는 것처럼 터미널에서 명령어 입력 가능
시각 요약
🍎 macOS (Darwin 커널)
└─ Docker Desktop
└─ LinuxKit VM (리눅스 커널)
└─ Ubuntu 컨테이너
표로 비교
항목 | Windows | macOS |
커널 | Windows NT | Darwin (BSD 계열) |
리눅스 커널 제공 방식 | WSL2 (내장 리눅스 커널) | LinuxKit (경량 VM) |
도커 컨테이너 실행 방식 | WSL2 위에 리눅스 컨테이너 실행 | VM 위에 리눅스 컨테이너 실행 |
사용자 시점 경험 | 리눅스처럼 보이는 CLI 환경 | 리눅스처럼 보이는 CLI 환경 |
도커는 “실제 운영체제를 교체하지 않고”, 각 OS 위에 리눅스 커널 환경을 잠깐 띄워서 격리된 컨테이너를 실행시킨다.Windows는 WSL2로, macOS는 경량 VM으로 이걸 구현한다.
Share article