DevOps/Docker

[ Docker #06 도커 설치하기 ] - M1 Macbook Docker install

[ 개발자의 필수 스펙인 Docker ]

 

CentOS, Ubuntu, Fedira, Red Hat 등 OS 종류부터

DB( ORACLE, MySQL(MariaDB), MS SQL, Postgre SQL, DB2 )들과

Python, Java, C, Cotlin, PHP, Node.js, GO 등 프로그램들을

손쉽게 관리할 수 있는 장점을 가지고 있어 많이들 사용되는데요~

 

애플 실리콘 M1 Mac을 2020년 11월 11일에 출시하고

한동안 Docker 사용의 제약이 있어 애플 실리콘을 지원하는 도커가

언제 출시될지 많은 관심들을 받아왔습니다.

 

그리고 드디어 애플 실리콘을 Dasktop으로 공식 지원하는 글이 올라왔고

필자는 M1 Macbook 유저로서 설치 방법에 대해 공유하고자 합니다.

 

단순히 설치만 진행할 수 있지만

필자의 경우 설치 방법과 이유를 설명하는 방식으로 진행하겠습니다.

 

.

.

.

 

[ M1 Macbook Docker install  ]

1. Rosetta2 install

Rosetta2를 설치하는 이유는 Apple 공식 사이트 내용을 인용하여 설명드리겠습니다.

Rosetta2를 사용하면 Intel 프로세서가 장착된 Mac용으로 제작된 앱을

Apple Silicon이 장착된 Mac에서 사용할 수 있도록 도와주는 역할을 합니다.

 

Rosetta가 필요하거나 Rosetta를 사용할 수 있는 앱을 식별하여

Intel 프로세서가 장착된 Mac용으로 제작된 앱을 사용할 때마다 백그라운드에서 작동되고,

Apple Silicon에서 사용할 수 있도록 앱을 자동으로 변환하는 역할을 합니다.

우리도 실행 파일을 "정보 가져오기"를 통해 파일을 식별할 수 있습니다.

정보 가져오기

응용 프로그램(Intel)은 앱이 Intel 프로세서만 지원하며 Apple Silicon이 탑재된 Mac에서 작동하려면 Rosetta가 필요함을 의미합니다.

응용 프로그램(Universal)은 앱이 Apple Silicon 및 Intel 프로세서를 모두 지원하며 기본적으로 Apple Silicon을 사용함을 의미합니다.

 

 

 

[ 설치 ]

위에서 말씀드린 내용과 동일하게 rosetta를 설치합니다.

$ softwareupdate --install-rosetta

설치시 아래와 같은 문구가 나올텐데, 대문자 "A"를 입력하여 동의를 진행합니다.

I have read and agree to the terms of the software license agreement.
A list of Apple SLAs may be found here: http://www.apple.com/legal/sla/
Type A and press return to agree:
$ A

그러면 아래와 같이 정상적으로 설치됨을 알 수 있습니다.

terminal

이제 Docker Desktop for Apple silicon 를 설치하겠습니다.

Docker 공식 홈페이지 링크를 통해에서 다운받을 수 있습니다.

[Docker dmg파일 빠르게 다운받기]

Docker Desktop for Apple silicon install

 

2021년 7월 29일 제가 다운받은 버전은

7월 8일에 업데이트 된 3.5.2 입니다.

Docker for Mac release notes

 

 

다운로드가 완료된 dmg파일을 열고 기분좋게 drag and drop을 합니다.

용량이 적은편은 아니지만 m1칩은 순식간에 복사가 됩니다.

 

docker drag and drop application

 

 

복사를 진행하고 Docker Dasktop을 실행하시면 

Docker를 사용하기 위해 권한 액세스가 필요하다며 아래와 같이 관리자 권한관련 창이 뜹니다.

Docker Desktop needs privileged access.

Docker Desktop needs privileged access.
Docker Desktop needs privileged access to install its networking components and links to the Docker apps.
You will be asked for your password.

 

 

OK를 누르고 비밀번호를 입력하시면 모든 세팅이 끝났다고 보시면 됩니다.

 

docker 설치 승인

 

 

잠시 기다리시면 아래와 같은 창이 뜹니다.

 

 

단점이 있다면 M1 Macbook 13 인치 기준으로는 화면사이즈를 많이 줄일 수 없습니다.(아래의 화면이 좌우 최소화면 입니다.)

축하드립니다👏🏻  화면 사이즈 최소화는 아쉽지만 설치 세팅은 끝났습니다 🙌🏻

 

 

 

마음이 급하신분들은 바로 Container 를 만드실텐데,

Docker 가 실행되고 running 되기까지 시간이 잠깐 소요되기 때문에 

상단바를 통해 Docker Desktop is running 인지 확인해주세요~

 

Docker Desktop is running

 

[ Docker 명령어 ]

Docker CLI 명령어는 [ Docker #05 알아보기 5/5 ] - Docker CLI 명령어 모음게시글을 참고 부탁드립니다.

 

 

[ 마무리하며 ]

향후 개선될 수 있는 사항이지만

당장으로서는 모든 이미지를 사용할 수 없습니다.

 

특히 가장 많이 사용하는 MySQL이

제가 테스트중인 3.5.2 버전으로는 불가능한 상황입니다.

하지만 MySQL의 발전된 MariaDB를 사용할 수 있기 때문에

MariaDB Container를 사용하시면 됩니다.

(MariaDB는 현재까지 최신의 MySQL과 같은 블랜치로부터 릴리즈되며, 대개의 경우 MySQL과 마찬가지로 동작함.)

 

MySQL을 제외하더라도 아직 Intel기반의 이미지를 전부 자연스럽게 활용할 수 없기 때문에

Arm기반 시스템에서 Intel 기반 컨테이너를 실행하는 것은 기본 컨테이너보다 느릴 수 있고,

기능이 된다는 결과만으로 매우 감사하는 일입니다..

오류를 최소화하기 위해서는 apple Silicon 시스템에서 arm64 컨테이너를 실행하고

컨테이너의 arm64 또는 다중 아키텍처 버전을 생성하도록 권장하고 있으니

모두 공식 Docker docs를 꼭 확인해주시면 좋을 것 같습니다.