맥북 한 대가 서늘한 사무실 창문 앞에 놓여 있다. 그 기기 위에는 Xcode, SwiftUI, 그리고 이젠 Docker 대신 등장한 Mocker라는 작은 CLI가 조용히 실행되고 있다. 스크린에 보이는 것은 단순한 명령어 한 줄이지만, 그 뒤에는 macOS의 컨테이너화 프레임워크를 활용해 실제 도커처럼 동작하도록 만든 숨은 기술이 숨어 있다.
우리가 일상적으로 접하는 Docker는 리눅스 커널 기능을 그대로 끌어와 가볍고 이식 가능한 컨테이너를 제공한다. 반면 Mocker는 macOS가 자체적으로 지원하는 컨테이너 프레임워크—리소스 격리를 위한 경량화된 런타임—를 차용해, 도커와 동일한 CLI 인터페이스를 재현한다. 이로써 개발자는 기존에 익숙했던 도커 명령어를 그대로 사용할 수 있으면서도, macOS의 네이티브 기능을 손쉽게 활용할 수 있다.
기술적으로 보면, Mocker는 Docker 엔진이 제공하던 이미지 레지스트리와 스토리지 드라이버 대신 Apple의 컨테이너 API를 매핑한다. 즉, 도커가 리눅스에서 구현한 cgroups나 네트워크 namespace 같은 기능을 macOS의 시스템 콜로 대체해 주는 것이다. 이는 두 운영체제 간에 존재하는 차이를 최소화하면서도, 맥 사용자가 별도의 가상 머신 없이 컨테이너를 띄울 수 있게 한다.
하지만 이런 편리함 뒤에는 몇 가지 고민이 남는다. 첫째, macOS의 컨테이너 프레임워크가 리눅스와 완전히 동일한 보안 모델을 제공하지 않기 때문에, 실제 프로덕션 환경에서는 도커만큼 강력한 격리를 기대하기 어렵다. 둘째, Mocker가 아직 초기 단계라서 이미지 호환성이나 네트워크 설정 등에서 미세 조정이 필요할 수 있다. 이러한 한계에도 불구하고, 개발자는 로컬 테스트를 빠르게 돌리고 싶을 때 도커 대신 Mocker를 선택해 볼 만하다.
전반적으로 Mocker는 맥 환경에서 컨테이너 사용의 진입 장벽을 낮추려는 시도로 보인다. 기존에 도커를 통해 리눅스 기반 서비스를 개발하고 테스트하던 사람들에게, macOS가 제공하는 네이티브 기능과 결합된 새로운 워크플로우를 제안한다. 그 자체가 하나의 실험일 뿐 아니라, 앞으로 컨테이너 기술이 플랫폼 간 경계를 넘어서는 가능성을 엿볼 수 있는 흥미로운 사례다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.