Docker에 SQL Server Machine Learning Services(Python 및 R) 설치

적용 대상: SQL Server 2019(15.x) - Linux

이 문서에서는 Docker에 SQL Server Machine Learning Services를 설치하는 방법을 설명합니다. Machine Learning Services를 사용하여 데이터베이스에서 R 또는 Python 스크립트를 실행할 수 있습니다. 미리 빌드된 컨테이너는 Machine Learning Services와 함께 제공하지 않습니다. GitHub에서 제공되는 예제 템플릿을 사용하여 SQL Server 컨테이너에서 새로 만들 수 있습니다.

필수 구성 요소

  • Git 명령줄 인터페이스.

  • 지원되는 모든 Linux 배포판에서 Docker Engine 1.8 이상 실행 자세한 내용은 Get Docker(Docker 가져오기)를 참조하세요. 컨테이너의 SQL Server는 Windows 또는 macOS에서 프로덕션 용도로 지원되지 않습니다.

  • SQL Server on Linux의 시스템 요구 사항도 참조하세요.

mssql-docker 리포지토리 복제

다음 명령은 mssql-docker git 리포지토리를 로컬 디렉터리로 복제합니다.

  1. Linux 또는 Mac에서 Bash 터미널을 엽니다.

  2. mssql-docker 리포지토리의 로컬 복사본을 보관할 디렉터리를 만듭니다.

  3. Git 복제 명령을 실행하여 mssql-docker 리포지토리 복제:

    git clone https://github.com/microsoft/mssql-docker mssql-docker
    

SQL Server Linux 컨테이너 이미지를 빌드합니다.

다음 단계에 따라 Docker 이미지를 빌드합니다.

  1. 디렉터리를 mssql-mlservices 디렉터리로 변경:

    /mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. 동일한 디렉터리에서 다음 명령을 실행합니다.

    docker build -t mssql-server-mlservices .
    
  3. 명령 실행:

    Important

    SA_PASSWORD 환경 변수는 사용되지 않습니다. 대신 MSSQL_SA_PASSWORD을 사용합니다.

    docker run -d -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e ACCEPT_EULA_ML=Y -e MSSQL_SA_PASSWORD=<password> -v <directory on the host OS>:/var/opt/mssql -p 1433:1433 mssql-server-mlservices
    

    참고 항목

    MSSQL_PID에 다음 값을 사용할 수 있습니다. Developer(무료), Express (무료), Enteprise(유료), Standard(유료). 유료 버전을 사용하는 경우 라이선스를 구입했는지 확인하세요. (password)를 실제 암호로 바꿉니다. -v를 사용한 볼륨 탑재는 선택 사항입니다. (directory on the host OS)를 데이터베이스 데이터 및 로그 파일을 탑재하려는 실제 디렉터리로 바꿉니다.

  4. 다음 명령을 실행하여 확인합니다.

    docker ps -a
    

    참고

    Docker 이미지를 빌드하려면 크기가 몇 GB인 패키지를 설치해야 합니다. 스크립트는 네트워크 대역폭에 따라 실행을 완료하는 데 다소 시간이 걸릴 수 있습니다.

SQL Server Linux 컨테이너 이미지를 실행합니다.

  1. 컨테이너를 실행하기 전에 환경 변수를 설정합니다. PATH_TO_MSSQL 환경 변수를 호스트 디렉터리로 설정:

    export MSSQL_PID='Developer'
    export ACCEPT_EULA='Y'
    export ACCEPT_EULA_ML='Y'
    export PATH_TO_MSSQL='/home/mssql/'
    

    참고

    컨테이너에서 프로덕션 SQL Server 버전을 실행하는 프로세스는 약간 다릅니다. 자세한 내용은 Docker에서 SQL Server 컨테이너 이미지 구성을 참조하세요. 동일한 컨테이너 이름 및 포트를 사용하는 경우 이 연습의 나머지 부분은 프로덕션 컨테이너에서도 계속 작동합니다.

  2. 컨테이너를 보려면 docker ps 명령을 실행합니다.

    sudo docker ps -a
    
  3. STATUS 열이 Up의 상태를 표시하는 경우, SQL Server는 컨테이너에서 실행되며 PORTS 열의 지정된 포트에서 수신 대기합니다. SQL Server 컨테이너의 상태 열이 Exited를 표시하는 경우, 구성 가이드의 문제 해결 섹션을 참조하세요.

    출력:

    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour     0.0.0.0:1401->1433/tcp   sql1
    

Machine Learning Services 사용 설정

Machine Learning Services를 사용하도록 설정하려면 SQL Server 인스턴스에 연결하여 다음과 같은 T-SQL 문을 실행합니다.

EXEC sp_configure  'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE

Python 개발자는 다음 자습서에 따라 SQL Server에서 Python을 사용하는 방법을 알아볼 수 있습니다.

R 개발자는 몇 가지 간단한 예제를 시작하고 R이 SQL Server에서 작동하는 방식의 기초를 알아볼 수 있습니다. 다음 단계로 가려면 아래 링크를 참조하세요.