반갑습니다. 저는|기업가이자, 엔지니어입니다.
Docker Desktop 의 License 정책으로 인한 대안들 (MacOS 기준)

Docker Desktop 의 License 정책으로 인한 대안들 (MacOS 기준)

Tags
Docker
Docker Desktop
MacOS
minikube
hyperkit
Published
발행일 - 2022년 5월 10일
Author
Eugene Jeon (전유진)
AuthorLink

Docker Desktop 의 License 정책

Docker Inc. 에서 2021년 08월 31일자로 유료라이선스 정책을 공개했다. 대규모 조직에서 더 이상 Docker Desktop 을 무료로 사용할 수 없다는 것이다.
 
대안을 알아보기 전에 먼저, Docker Inc. 와 Docker Desktop 등에 대해 조금 살펴보자.

Docker Inc.

컨테이너에서 애플리케이션을 더 쉽게 개발, 테스트 및 실행할 수 있도록 하는 일부 오픈 소스 및 비오픈 소스 소프트웨어를 만들고 있는 미국 기반 회사이다.

Docker Engine

Docker 의 핵심 기술이다. Linux 커널 위에서 컨테이너를 실행할 수 있게 해두는 데몬으로 Linux 에서 실행되는 오픈 소스 소프트웨어이다. 컨테이너가 액세스 할 수 있는 물리적 리소스 (컴퓨팅, 메모리, 스토리지) 의 컨테이너 수명 주기 및 격리를 담당한다. 엔진은 물리적 또는 가상 머신에서 실행할 수 있지만 Linux 커널, 즉 Linux 의 특징을 가진 모든 OS 에서만 실행할 수 있다.

Docker CLI

Docker 엔진과 상호 작용하는 데 사용하는 CLI 이다. docker 와 docker-compose 명령으로 구성되며, 오픈 소스 소프트웨어이다.

Docker Desktop

Docker Engine 은 Linux 에서만 실행되기 때문에 소프트웨어 개발을 위해 Windows 및 macOS 를 사용하는 개발자는 Linux 를 실행하는 가상 머신 (VM) 에 의존할 수 밖에 없다. 이 때 개발자는 Docker Desktop 을 이용하여 VM 의 운영, 관리 등을 신경쓸 필요 없이 개발 환경에서 컨테이너 기술을 원활하게 사용할 수 있다. 이는 closed-source software 이다.
 
 
위에서 자세히 살펴본 것 처럼, Docker CLI 와 Docker Engine 을 오픈 소스 소프트웨어이다.
Docker CLI 는 여전히 맥에서 사용할 수 있다. 다만, Docker Engine 은 Linux 에서만 실행되기에 대체재가 필요하다.
 
그래서 먼저, Docker Engine 대안을 살펴보자.

Docker Engine 의 대안

Docker Engine 은 간단히 요약하면, Container Rumtime 이다.
다른 Container Rumtime 들을 살펴보자. 요즘 유명한 Container Rutime 으로 2가지가 있다.

containerd (Container Rumtime)

Docker Inc. 에서 OCI (Open Container Initiative) 에 맞추어서 만든 Container Rumtime 이다. 하지만, macOS 에서는 사용이 불가능하다.

CRI-O (Container Rumtime)

Red Hat 을 주축으로 Intel, Suse, Hyper, IBM 등이 참여하여 OCI 표준에 따라 Kubernetes 전용 Container Rumtime 을 만들었는데, 이것이 CRI-O 이다. 이것도 macOS 에서는 사용이 불가능하다.
 
다른 Container Rumtime 들도 역시 Linux 기반에서만 동작하도록 설계되어 있다. 결국 이전 세대 기술인 Hypervisor (Driver) 를 함께 사용해야 할 것 같다.

hyperkit (Hypervisor)

Docker Desktop 을 살펴보면, Hyperkit 을 포함하고 있다. 가장 간편한 대안일 것이다.
 

Docker Desktop 의 대안...??

이제 Hypervisor 와 Docker Rumtime 을 관리할 수 있는 도구의 대안은 minikube 를 추천한다.

minikube

원래는 Container 오케스트레이션을 위해 만들어진, 쿠버네티스를 기반으로 만들어졌다. 로컬 및 개발 환경에서 쿠버네티스를 실행하는데 사용되는데, 도커 데몬도 실행하기 때문에 Docker Desktop 의 대안으로 적절하다고 판단된다.

Docker Desktop 교체작업 (실행코드)

minikube + hyperkit

(bash)
# Install hyperkit and minikube $ brew install hyperkit $ brew install minikube # Install Docker CLI $ brew install docker $ brew install docker-compose # Start minikube $ minikube start --driver hyperkit # Tell Docker CLI to talk to minikube's VM $ eval $(minikube docker-env) # Save IP to a hostname $ echo "`minikube ip` docker.local" | sudo tee -a /etc/hosts > /dev/null # Test $ docker run hello-world

하지만?!

Docker Desktop 을 대안을 살펴보았지만, 개인 사용자는 크게 신경쓸 필요가 없다.
개인은 여전히 무료로 사용할 수 있다.
그리고 교육기관이나 소규모 기업에서도 역시 무료이다. 특히나 소규모 기업의 조건은 다음과 같다.
구분
조건
직원
250명 미만
매출
연간 1천만 달러 미만
(단, 위 조건을 초과하는 대규모 기업은 $5/명 (사용자당 $5) 부터 시작하는 유료요금을 지불해야 한다.)
 

마무리

MacOS 기준으로 설명한 글이지만, Linux 에서 Docker 를 대체하려면 전혀 다른 도구들을 선택해야 한다. 이에 함께 참고할 만한 사진을 첨부한다.
notion image
notion image

Loading Comments...