Silicon M1 Mac에서 UTM으로 Docker Desktop 대체 하기

Silicon M1 Mac에서 UTM으로 Docker Desktop 대체 하기
Photo by Hostaphoto / Unsplash

이 글은 꽤 오래된 글이고 현재 (23년 10월) 는 OrbStack · Fast, light, simple Docker & Linux on macOS 라는 툴을 쓰는 것을 권장한다.

Docker Desktop 의 유료전환 소식이 있었고 22년 1월 말까지 유예기간을 둔다고 한다. 그 성능이 어떠하든 개발환경을 구축할때 필수적으로 사용하던 어플리케이션이라 아쉬움이 많이 남는다. Mac 환경에서 개발을 해야하는 회사들은 아마도 대안을 찾을 것으로 보이는데, 그 대안이 Intel Mac인 경우 VirtualBox 를 활용한 다양한 옵션이 있는 것으로 보이나, Silicon Mac 에서는 VirtualBox 도 사용 못하는 상황이라 현재(21년 12월 1일) 그 대안이 몇가지 없어 보이는 것이 현실이다.

그러던 와중에 Silicon Mac 을 지원하는 UTM 이라는 오픈소스 VM을 찾았고 그 위에 Ubuntu 를 설치해서 Docker Desktop의 기능을 대체 해보기로 했다.

1. UTM 설치

utm은 homebrew 를 통해 다음과 같이 쉽게 설치 할 수 있다. 추후에 Mac 에서 TCP 소켓으로 VM Dockerd 에 접속해야 하므로 docker, docker-compose 도 같이 설치 해준다.

⁠brew install utm docker docker-compose

utm 을 설치하고 실행하고 나면 다음과 같은 화면을 볼 수 있다.

2. Ubuntu VM 설치 / 설정

이제 Linux VM 을 설치하기 위해 ISO 파일을 다운로드 받아야 한다. UTM이 ARM64 OS의 경우 Native 속도에 가까운 성능을 내준다고 하니 Ubuntu의 ARM64 OS를 선택하기로 했다.

Download, Ubuntu Server for ARM

1) 새 가상머신 만들기

2)  가상머신 시스템 설정

3) 드라이브 설정

4) USB에 ISO 이미지 마운트

5-1) Ubuntu Linux 설치

5-2) 계정 설정

5-3) Mac 에서 VM으로 접근할 SSHD 설치

5-4) 설치 완료 후 USB 이미지 제거

6-1) 사용하지 않을 cloud-init 제거

sudo touch /etc/cloud/cloud-init.disabled
sudo dpkg-reconfigure cloud-init
sudo apt-get purge cloud-init
sudo rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/
sudo reboot

3. Docker 설치 / 설정

1) Mac 에서 SSH 접속하기

2) VM에 docker service 설치하기

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.iosudo systemctl enable docker && service docker start

3) Docker Demon 의 Remote API 를 사용하기 위한 설정

vim /lib/systemd/system/docker.service
tcp://0.0.0.0:2375
ExecStart 에 “-H tcp://0.0.0.0:2375 을 추가한다

4) Mac 에서 VM 도커 이용하기