Run the SQL Server 2017 with Docker

 

·      Version : SQL Server 2017 Linux

 

SQL Server 2017 Linux 버전을 Docker 활용해서 빠르게 설치하여 활용하는 방법에 대해서 살펴본다이번 포스트에서 다루는 환경 구성은 Windows Host 기반에 Docker(windows버전) 설치하고 Container SQL Server 2017 Linux  실행한다 포스트는 SQL Server 중점으로 다루고 있으며 Docker 대해서는 다루지 않는다.

 

Docker 설치가 완료 되었으면 Powershell 명령 도구를 실행 한다그리고 아래 명령어를 실행 한다 명령은 최신 버전의 SQL Server 2017 Linux 버전의 컨테이너 이미지를 가져온다.

docker pull microsoft/mssql-server-linux:2017-latest

 


 

아래 명령어를 실행하면 위에서 다운로드 받은 이미지를 확인   있다.

docker images

 


 

아래 명령을 실행 하여 다운로드 받은 이미지를 container 실행 한다.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" `

   -p 1401:1433 --name sql1 `

   -d microsoft/mssql-server-linux:2017-latest

 

·       -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" : SA 비밀번호를 생성한다 단계를 필수 이므로 요구 조건을 만족하는 비밀번호를 입력   있도록 한다.

·       -p 1401:1433 : 호스트의 1401 포트를 컨테이너의 1433으로 매핑한다.

·       --name sql1 : 컨테이너 이름을 지정한다사용자가 변경할  있다이미 다른 컨테이너에서 이름을 사용하고 있다면 중복으로 사용이 불가능 하다.

·       -d microsoft/mssql-server-linux:2017-latest : 컨테이너가 실행할 이미지 이름


 

아래 명령을 실행하여 SQL Server container 정상적으로 실행되었는지 확인할  있다.

docker ps

 


 

SQL Server 실행이 정상적으로 완료 되었으면, Container에서 SQL Server 접속할  있다아래 스크립트를 실행하면 sqlcmd 명령으로 접속할  있다.

docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd ` -S localhost -U SA -P "<YourStrong!Passw0rd>" `

 


 

Container외부에서Container내부의 SQL Server 접속하기 위해서는 host에서 컨테이너로 매핑하고 있는 IP 접속해야 한다.아래 명령어로 container 정보를 확인하여 현재 사용되는 포트를 확인한다. Host 1401 포트가Container 1433으로 매핑되는것을 확인   있다.

docker ps

 


 

필자의 경우 mssql-cli 사용하여 외부에서Container  SQL Server 접속 하였다. SSMS로도 접속이 가능하다.

mssql-cli –S 127.0.0.1,1401 –U sa

 


 

아직은 Docker기반의 SQL Server 실제 운영환경을 대체할  있을지는  모르겠으나개발 환경이나 다양한 테스트 환경을 구성하기에는 빠르고 쉽게 설치   있어 다양한 용도로 활용   있을듯 하다.

 

[참고자료]

https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker

 

 

2018-04-04 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

SQL Linux, SQL Server with docker, 도커컨테이너, SQL Server 2017



출처: https://sqlmvp.tistory.com/1244?category=618825 [Database Lab]
No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 33593
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16948
2134 Azure SQL에서 네트워크를 구성하는 방법 jevida(강성욱) 2019.03.25 296
2133 SQL Server 네이티브 컴파일된 저장 프로시저 성능 모니터링 jevida(강성욱) 2019.03.25 579
2132 SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 jevida(강성욱) 2019.03.25 319
2131 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 466
2130 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 466
2129 SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상 jevida(강성욱) 2019.03.25 367
2128 SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원 jevida(강성욱) 2019.03.25 514
2127 SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침 jevida(강성욱) 2019.03.25 553
2126 SQL Server update on Docker jevida(강성욱) 2019.03.25 451
2125 SQL Server 2017에서 향상된 UDF 실행 계획 jevida(강성욱) 2019.03.25 419
2124 ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) jevida(강성욱) 2019.03.25 607
» Run the SQL Server 2017 with Docker jevida(강성욱) 2019.03.25 518
2122 SQL Server Configuration Manager 실행 오류 (WMI 공급자 연결 오류) jevida(강성욱) 2019.03.25 637
2121 BULK INSERT 동시에 여러개 실행 향지 2019.01.30 1085
2120 대용량 데이터 조인에 대한 고민 ( Hash Join VS Nested Loop Join ) 향지 2018.04.04 4536
2119 How to check if Azure SQL is using In-Memory jevida(강성욱) 2018.03.31 3318
2118 MSSQL-CLI를 활용한 크로스플랫폼에서 SQL Server 관리하기 jevida(강성욱) 2018.03.31 3729
2117 SSMS – Search for execution plan jevida(강성욱) 2018.03.31 3809
2116 SQL Server Parallelism and Wait change (CXAPCKET, CXCONSUMER) jevida(강성욱) 2018.03.31 4107
2115 SQL Server Statistics Update row sampling rate and histogram step jevida(강성욱) 2018.03.31 3748





XE Login