가상화란? 포스트 내용 정리





Docker의 개념 및 핵심 설명 포스트 내용 정리


| OS 가상화(VM) | 컨테이너 가상화(Docker) | |
|---|---|---|
| 기본 구조 | 하이퍼바이저 위에 각 VM이 독립된 게스트 OS를 가짐 | 호스트 OS의 커널을 공유, 그 위에 여러 컨테이너를 실행 |
| 커널 공유 여부 | 커널을 공유하지 않음 (각 VM마다 별도 커널) | 커널을 공유함 (호스트의 커널) |
| 멀티 OS 가능 여부 | 가능 (윈도우 호스트 위에 리눅스 게스트 OS VM, 반대도 가능) | 불가능 (호스트 커널과 동일한 계열 OS만 사용 가능, 예: 리눅스 호스트면 리눅스 기반 컨테이너만) |
| 격리 수준 | 높음 (OS 단위 전체 격리) | 낮음 (커널 레벨에서만 격리) |
| 자원 요구량 | 큼 (OS 전체 구동) | 적음 (프로세스 수준 구동) |
| 부팅 속도 | 느림 (수분 소요) | 빠름 (수 초) |
- Windows에서 Linux용 Docker 이미지 실행 가능 조건
- WSL2(Windows Subsystem for Linux 2) 또는 Hyper-V 기반의 Docker Desktop을 사용하면, 윈도우 환경에서도 리눅스 커널을 내부적으로 실행하게 됩니다.
- 이 구조 덕분에 윈도우에서 실제로 리눅스 컨테이너 이미지를 거의 그대로 받아 실행할 수 있게 되는 것입니다.
- Docker Desktop 환경에서는 기본적으로 WSL2(최근 권장 방식)를 백엔드 엔진으로 사용하도록 설정되어 있으며, 이렇게 하면 Docker Hub에서 받은 리눅스 기반 이미지를 바로 실행할 수 있습니다.
- 주의할 점
- Docker Desktop의 "컨테이너 엔진"을 리눅스로 설정해야 리눅스 이미지를 실행할 수 있습니다.
- Windows 컨테이너와 Linux 컨테이너를 동시에 실행할 수는 없습니다. 두 모드 간 수동 전환이 필요합니다.
- 기본적으로 받은 이미지는 대부분 리눅스용이기 때문에, 윈도우에서 Docker Desktop/WSL2 기반 환경이면 바로 실행해도 됩니다.
- 결론
- 대부분의 경우, 윈도우에서 도커를 쓴다면 WSL2 같은 리눅스 커널 호환 백엔드가 있기 때문에 리눅스용 이미지를 그대로 실행할 수 있습니다.
- 단, 도커 엔진 모드가 "Linux"여야 하며, "Windows 컨테이너" 모드에서는 동작하지 않습니다.


