MacOS에 SQL Server 도커 컨테이너 설치하기

smpl published on
2 min, 362 words

맥북 프로에 SQL Server 인스턴스를 개발 목적으로 설치할 필요성이 생겨서, 도커를 이용해서 설치해보고 방법을 남겨 놓습니다.

MacOS에 SQL Server 도커 컨테이너 설치하기

이미지 다운로드

docker pull mcr.microsoft.com/mssql/server:2019-latest

서버 실행

실행 시, SA_PASSWORD를 지정해주어야 하는데, 다음 규칙을 만족해야 합니다.

  • 영어 대문자 포함
  • 영어 소문자 포함
  • 숫자 포함
  • 특수문자 포함
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=비밀번호" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

데이터 유지하기

위와 같이 실행한 컨테이너는, 종료하고 나면 작업내용이 유지되지 않는다.

그러므로, 컨테이너를 이미지로 만들고, 컨테이너 안의 데이터 경로를 컨테이너 밖의 파일시스템과 연결하여 데이터가 유지되도록 해야 한다.

먼저 이미지로 만드는 방법은 다음과 같다. 훨씬 우아한 방법이 있겠지만, 이제 막 docker를 써보기 시작한 상태여서... ;(

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=비밀번호" -p 1433:1433 --name "temp-mssql-server-2019-container" -d mcr.microsoft.com/mssql/server:2019-latest
docker stop "temp-mssql-server-2019-container"
docker commit "temp-mssql-server-2019-container" "my-mssql-2019"

이렇게 해두면, 다음부터는 my-mssql-2019 이미지로부터 컨테이너를 실행할 수 있다.

여기에, ~/docker-data/mssql 경로를 데이터 경로로 연결시켜 준다. 아래는 최종적인 실행 명령이다.

docker run -d --rm -p 1433:1433 -v ~/docker-data/mssql/data:/var/opt/mssql/data -v ~/docker-data/mssql/log:/var/opt/mssql/log -v ~/docker-data/mssql/secrets:/var/opt/mssql/secrets "my-mssql-2019"

(만약에 windows에서 powershell로 실행하는 경우는, ~/docker-data/mssql 대신, $HOME/docker-data/mssql 을 지정해주면 된다.)

ODBC driver & SqlCmd 설치하기

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools

SQL Server Management Studio 대용

SSMS는 아직 MacOS에서 지원되지 않고 있습니다. 대신 오픈소스 GUI 클라이언트들 중에서 하나를 선택해서 이용해야 하며, 개인적으로는 DBeaver라는 프로그램이 기본적인 작업을 하기에는 괜찮아서 사용하고 있습니다.

DBeaver

References