Orbstack
새로운 macOS용 가상화 도구
OrbStack이란?
OrbStack은 Docker 컨테이너와 Linux 가상 머신을 실행할 수 있는 macOS 전용 초고속, 초경량 가상화 도구입니다. Docker Desktop의 강력한 대체재로 떠오르고 있으며, 특히 성능과 리소스 사용량에 민감한 개발자들에게 큰 호응을 얻고 있습니다.
핵심은 macOS 네이티브 기술(Swift, Virtualization.framework 등)을 적극적으로 활용하여 매우 가볍고 빠르다는 점입니다. 단순히 컨테이너를 넘어 완전한 Linux 배포판도 순식간에 실행할 수 있는 강력한 기능을 제공합니다.
OrbStack vs Docker Desktop
두 도구의 차이점을 한눈에 파악할 수 있도록 표로 정리했습니다.
항목 | OrbStack | Docker Desktop |
---|---|---|
주요 대상 OS | macOS 전용 | macOS, Windows, Linux |
아키텍처 | 경량화된 커스텀 하이퍼바이저, macOS 네이티브 기술 | 무거운 VM (HyperKit, Virtualization.framework, WSL2) |
성능 (시작 속도) | 매우 빠름 (약 2초) | 상대적으로 느림 (수십 초 이상 소요될 수 있음) |
리소스 사용량 | 매우 낮음 (낮은 CPU 점유율, 적은 메모리 사용) | 높음 (상시 높은 CPU 및 메모리 점유) |
주요 기능 | Docker 컨테이너, Linux 가상 머신, Kubernetes | Docker 컨테이너, Dev Environments, Extensions, Kubernetes |
네트워크/파일 I/O | 최적화된 네이티브 구현으로 매우 빠름 | 상대적으로 느리며, 특히 파일 I/O에서 병목 현상 발생 |
UI | Swift 기반의 네이티브 macOS 앱 | Electron 기반의 크로스플랫폼 앱 |
라이선스 | 개인 무료, 팀/기업용 유료(Pro) | 개인/소규모 무료, 중/대규모 기업 유료 |
상세 비교
OrbStack이 docker desktop에 비해 뛰어난 점을 설명합니다.
아키텍처 및 성능
- OrbStack: Swift로 작성된 네이티브 macOS 앱이며, Apple의
Virtualization.framework
를 기반으로 한 매우 가벼운 가상화 레이어를 사용합니다. 네트워크 스택과 파일 시스템(VirtioFS)이 macOS에 깊게 통합되어 있어 Docker Desktop 대비 월등한 성능을 보여줍니다. 특히 컨테이너 시작, 파일 공유, 네트워크 통신 속도가 체감될 정도로 빠릅니다. - Docker Desktop: 전통적으로 무거운 가상 머신 위에서 Docker 엔진을 실행하는 방식이었습니다. 최근에는 macOS의 기술을 도입했지만, 여전히 OrbStack만큼 네이티브 환경에 최적화되지는 않아 상대적으로 무겁고 느립니다.
리소스 사용량
이것이 OrbStack을 선택하는 가장 큰 이유 중 하나입니다.
- OrbStack: 유휴 상태(idle)에서 거의 CPU를 사용하지 않으며, 메모리 사용량도 매우 적습니다. 노트북의 배터리 수명과 팬 소음에 직접적인 영향을 미치는 부분으로, M1/M2/M3 계열의 Apple Silicon Mac에서 특히 그 차이가 두드러집니다.
- Docker Desktop: 백그라운드에서 상시 실행되는 프로세스들이 많아 상당한 CPU와 메모리를 점유하는 경우가 많습니다. 여러 컨테이너를 실행하면 시스템 전체가 느려지는 경험을 하셨을 겁니다.
Linux 가상 머신 지원
- OrbStack: Docker 컨테이너뿐만 아니라, 완전한 Linux 가상 머신을 몇 초 만에 생성하고 실행할 수 있습니다.
orb launch ubuntu
같은 간단한 명령어로 Ubuntu, Debian, CentOS 등 다양한 배포판을 즉시 사용할 수 있습니다. 이는 컨테이너 환경만으로는 부족했던 복잡한 테스트나 개발 환경을 구축할 때 매우 유용합니다. - Docker Desktop: 주된 기능은 컨테이너 관리입니다. 비슷한 경험을 제공하는 Dev Environments 기능이 있지만, OrbStack처럼 가볍고 빠르게 완전한 OS 환경을 제공하는 것과는 차이가 있습니다.
사용 편의성 및 UI
- OrbStack: macOS의 디자인 가이드라인을 따르는 네이ティブ UI를 제공하여 매우 직관적이고 반응성이 뛰어납니다. 시스템 메뉴 막대 아이콘을 통해 모든 것을 간단하게 제어할 수 있습니다.
- Docker Desktop: Electron으로 만들어져 여러 OS에서 동일한 경험을 제공하지만, macOS 네이티브 앱만큼의 부드러움이나 빠른 반응성을 기대하기는 어렵습니다.
라이선스 정책
- OrbStack: 개인 개발자에게는 대부분의 기능이 무료로 제공됩니다. 팀 협업이나 고급 네트워킹 기능 등이 필요한 기업을 위한 Pro 플랜(유료)이 있습니다.
- Docker Desktop: 개인, 교육, 비영리, 소규모 기업(직원 250명 미만 또는 연 매출 1,000만 달러 미만)에게는 무료입니다. 그 이상의 기업에게는 유료 구독이 필수입니다.
기존 Docker Desktop에서 migration하려면?
기존 Docker Desktop에서 migration하려면 아래의 명령어롤 통해 migration이 가능합니다.
1
orb docker migrate
자세한 사항은 orbstack 문서를 참조해주세요.
Docker Desktop을 삭제하고 Orbstack으로 넘어가려면?
아래의 몇가지 step을 진행하면 기존 Docker Desktop을 완전히 삭제 후 Orbstack으로 넘어갈 수 있습니다.
1단계: 현재 Docker 컨텍스트(Context) 확인 및 전환
가장 중요한 첫 단계입니다. 실수로 OrbStack의 데이터를 삭제하는 것을 방지하기 위해, 모든 삭제 명령어는 반드시 Docker Desktop 컨텍스트에서 실행되어야 합니다.
현재 활성화된 컨텍스트 확인
*
표시가orbstack
이 아닌desktop-linux
또는default
에 있는지 확인하세요.1
docker context ls
Docker Desktop 컨텍스트로 전환 (필요시) 만약 현재 컨텍스트가
orbstack
으로 되어 있다면, 아래 명령어를 실행하여 반드시desktop-linux
으로 변경하세요.1
docker context use desktop-linux
최종 확인 명령어를 실행할 컨텍스트가 올바른지 다시 한번 확인합니다.
1 2
docker info | grep -E 'Context|Server Version|Docker Root Dir' # Context: desktop-linux 가 보여야 합니다.
2단계: Docker 리소스 정리 (CLI 명령어 사용)
아래 명령어들을 순서대로 실행하여 Docker Desktop이 사용하던 컨테이너, 이미지, 볼륨 등을 모두 삭제합니다.
모든 컨테이너 정지 및 삭제
1 2 3 4 5
# 실행 중인 컨테이너 정지 docker ps -q | xargs -r docker stop # 모든 컨테이너 삭제 (연결된 익명 볼륨까지) docker ps -aq | xargs -r docker rm -fv
사용자 정의 네트워크 삭제
1
docker network ls --filter type=custom -q | xargs -r docker network rm
모든 이미지 삭제
1
docker images -q | xargs -r docker rmi -f
모든 볼륨 삭제
1 2 3 4 5
# 이름 있는 볼륨 전부 삭제 docker volume ls -q | xargs -r docker volume rm # Dangling(사용되지 않는) 볼륨 정리 docker volume prune -f
시스템 캐시 및 찌꺼기 정리 모든 리소스를 한 번에 정리하는 가장 강력한 명령어입니다. 위 과정을 개별적으로 실행했더라도, 마지막에 이 명령어를 실행하여 남은 모든 것을 정리하는 것이 좋습니다.
1
docker system prune -af --volumes
3단계: Docker Desktop 애플리케이션 완전 삭제
CLI로 리소스를 정리한 후, Docker Desktop 애플리케이션과 관련 설정 파일들을 완전히 제거합니다.
Docker Desktop 컨텍스트 정보 삭제
1
docker context rm desktop-linux
애플리케이션 및 관련 데이터 삭제
1 2 3
rm -rf ~/Library/Containers/com.docker.docker rm -rf ~/Library/Group\ Containers/group.com.docker rm -rf ~/.docker/
이후 Applications 폴더에서 Docker 아이콘을 휴지통으로 드래그하여 삭제합니다.
대체 방법: Docker Desktop 공장 초기화
위의 CLI 명령어들이 복잡하게 느껴진다면, Docker Desktop 앱의 설정(Settings) > Troubleshoot > Reset to factory defaults 메뉴를 이용할 수 있습니다.
이는 VM 디스크를 포함한 모든 데이터를 초기화하는 가장 강력하고 간단한 방법입니다. 단, 이 방법을 사용하기 전에도 현재 컨텍스트가desktop-linux
인지 반드시 확인해야 합니다.
4단계: 최종 확인
모든 과정이 완료된 후, orbstack
컨텍스트만 정상적으로 남아있는지 확인합니다.
1
docker context ls
결과가 아래와 같이 orbstack
만 보인다면 성공적으로 마이그레이션이 완료된 것입니다.
1
2
3
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
orbstack * OrbStack unix:///Users/yoodongjin/.orbstack/run/docker.sock
결론
다음과 같은 경우 OrbStack을 강력히 추천합니다:
- macOS 사용자이며, 최고의 성능과 낮은 리소스 사용량을 최우선으로 생각하는 경우
- Docker Desktop의 느린 속도와 높은 자원 소모에 불편함을 겪어본 경우
- Docker 컨테이너와 함께 가벼운 Linux 가상 머신 환경이 자주 필요한 경우
- 빠르고 직관적인 네이티브 UI를 선호하는 경우
다음과 같은 경우 Docker Desktop을 계속 사용하는 것이 좋을 수 있습니다:
- Windows나 Linux 환경에서 작업하거나, 여러 OS를 사용하는 팀과 환경을 통일해야 하는 경우
- Docker Desktop에서만 제공하는 특정 익스텐션(Extensions)이나 부가 기능이 반드시 필요한 경우
- 이미 회사의 표준으로 Docker Desktop이 지정되어 있고, 라이선스 문제가 없는 경우
결론적으로, 현재 macOS에서 개발하신다면 OrbStack으로 전환하지 않을 이유가 거의 없다고 할 수 있습니다. 기존 docker
CLI 명령어를 그대로 사용할 수 있어 마이그레이션 비용도 거의 들지 않습니다. 한번 사용해보시면 그 성능과 쾌적함에 놀라실 겁니다.
[출처]
- https://www.youtube.com/watch?v=Z4Ch6CeqFHE
- https://docs.orbstack.dev/