Homebrew 홈페이지를 참고하여 Homebrew를 설치합니다.
Homebrew는 macOS와 Linux에서 사용할 수 있는 패키지 관리 도구로, 터미널에서 명령어 한 줄로 다양한 프로그램과 패키지를 쉽게 설치하고 관리할 수 있도록 도와줍니다.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew --version 명령어로 설치를 확인할 수 있습니다.$ brew --version
Colima는 macOS에서 Docker Desktop 없이 가벼운 CLI 환경(터미널)에서 Docker 컨테이너를 실행할 수 있도록 해주는 도구입니다.
보통 macOS에서 Docker를 사용하려면 Docker Desktop을 설치해야 하지만, Colima를 사용하면 Docker Desktop 없이도 Docker를 실행할 수 있습니다.
Colima는 내부적으로 Lima라는 가상화 도구를 사용하고, Lima는 다시 QEMU라는 가상화 기술을 기반으로 작동합니다.
QEMU → 가상 머신을 만들고 실행하는 기술(macOS에서 리눅스 VM 실행 가능)
Lima → QEMU를 활용해 macOS에서 가벼운 Linux VM을 실행하는 도구
Colima → Lima를 활용해 Docker 컨테이너를 실행할 수 있도록 만든 도구
$ brew install colima
Colima 설치 후, colima start 명령어를 입력하면, FATA[0000] dependency check failed for docker: docker not found, run 'brew install docker' to install라는 오류가 발생합니다.
이 오류는 Colima 자체는 실행되지만, docker 명령어(docker CLI 도구)가 없어서 발생하는 오류입니다.
$ brew install docker
docker 설치 후, 다시 colima start 명령어를 입력하면,ATA[0001] error starting vm: error at 'creating and starting': qemu is required to emulate x86_64: qemu-img not found라는 오류가 발생합니다.
이 오류는 QEMU가 없거나 인식되지 않아서 발생하는 오류입니다.
$ brew install qemu
설치 후에 colima start 명령어를 실행하면, Colima가 정상적으로 실행되는 것을 확인할 수 있습니다.
$ colima start

그런데, 실제로 Colima를 실행할 때는 Colima 실행 명령어에 --arch x86_64 옵션을 추가하여 실행해야 합니다. 오라클 데이터베이스는 ARM(애플의 M 시리즈 칩셋, 애플 실리콘) 용으로 제공되지 않기 때문입니다.
오라클이 제공하는 공식 Docker 이미지는 x86_64(AMD64) 아키텍처 전용입니다. 애플 실리콘은 ARM64 아키텍처이므로, 기본적으로 실행이 불가능합니다. 따라서, Colima에서 --arch x86_64 옵션을 주어야 x86_64 환경에서 실행할 수 있습니다.
즉, macOS 환경(ARM)에서 Oracle Database를 Docker로 실행하려면 반드시
--arch x86_64옵션을 추가해야 합니다.
오라클 데이터베이스를 Docker에서 실행하기 위해 사용할 이미지를 검색합니다.
$ docker search oracle-xe
oracle-xe는 Oracle Database Express Edition(XE)을 의미하는 키워드로, Express Edition(XE)은 무료로 사용 가능한 가벼운 버전입니다.

검색 결과에서 가장 많이 사용하는 gvenzl/oracle-xe 이미지를 확인할 수 있습니다. 이 이미지를 사용하여 오라클 컨테이너를 실행합니다.
가상 환경이 준비되었으니, docker run 명령을 통해 Docker 컨테이너를 실행하고 오라클 서버를 띄웁니다.
gvenzl/oracle-xe 이미지가 없을 경우, 명령어를 실행하면 자동으로 최신 버전(latest)으로 가져옵니다.
$ docker run \
--restart unless-stopped \
--name oracle \
-e ORACLE_PASSWORD=pass \
-p 1521:1521 \
-d \
gvenzl/oracle-xe
--restart unless-stopped: 컨테이너가 예기치 않게 종료되거나 시스템이 재부팅되었을 때 자동으로 다시 시작됩니다. 단, 사용자가 명시적으로 컨테이너를 중지하면 재시작되지 않습니다.--name oracle: 컨테이너의 이름을 oracle로 지정합니다. 이후 컨테이너 ID 대신 컨테이너 이름으로 관리할 수 있습니다.-e ORACLE_PASSWORD=pass: 환경 변수 설정으로, 오라클 데이터베이스의 기본 비밀번호를 pass로 설정합니다.-p 1521:1521: 호스트와 컨테이너 간의 포트 바인딩을 설정하여, 오라클 기본 접속 포트인 1521번을 사용하도록 합니다.-d: 컨테이너를 백그라운드 모드(detached mode)에서 실행하여 터미널이 컨테이너 실행에 종속되지 않도록 합니다.gvenzl/oracle-xe: 사용할 Docker 이미지입니다. 이 이미지를 기반으로 Oracle XE 데이터베이스 컨테이너를 실행합니다.아래 명령어를 실행하여 성공 여부를 확인합니다. DATABASE IS READY TO USE! 메시지가 뜨면 성공입니다.
$ docker logs 컨테이너명

생성한 컨테이너가 실행중이라면 다음 명령을 통해 SQL Plus를 실행할 수 있습니다.
$ docker exec -it 컨테이너명 sqlplus
명령어를 실행하면 다음과 같이 유저 이름과 패스워드를 입력하라고 나오는데,
user-name은 system, password는 컨테이너 실행 시 설정한 비밀번호를 입력하면 됩니다.
password는 입력해도 UI에 뜨지 않는 것이 정상입니다.
SQL Plus를 종료하려면, exit 명령어를 사용하면 됩니다.

잘 접속되는 것을 확인할 수 있습니다.
