SQL Server 2017 on Docker
SQL Server 2017 RC2 の Docker イメージが Docker Hub で公開されているので、CentOS 上の Docker で検証した。
パッケージインストールや詳細情報は「SQL Server 2017 を CentOS 7.4 で試す」を参照。
検証環境
- VirtualBox 5.1.28
- CentOS 7.4.1708 (minimal)
- Docker 17.06.2 (docker-ce-stable)
- Docker Compose 1.16.1 (GitHub)
- SQL Server 2017 (RC2) - 14.0.900.75 (Docker Hub) (microsoft/mssql-server-linux)
Docker / Docker Compose
yum clean all && yum -y update && reboot
yum -y install epel-release && yum -y update && yum -y install yum-axelget
yum -y install yum-utils && \
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \
yum -y install docker-ce && systemctl start docker && systemctl enable $_ && \
curl -o /usr/local/bin/docker-compose -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` && \
chmod +x /usr/local/bin/docker-compose
docker-compose.yml
cat << "_EOF_" > docker-compose.yml && docker-compose up -d
version: '2'
services:
mssql:
image: microsoft/mssql-server-linux
container_name: mssql
hostname: mssql
environment:
ACCEPT_EULA: Y
SA_PASSWORD: 'P@ssw0rd'
MSSQL_PID: 'Developer'
MSSQL_LCID: 1041
ports:
- '1443'
volumes:
- './sqlserver-data:/var/opt/mssql'
_EOF_
environment
の MSSQL_LCID
に 1041
を指定すると日本語版がインストールされる。
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
mssql /bin/sh -c /opt/mssql/bin/ ... Up 1433/tcp, 0.0.0.0:32772->1443/tcp
起動を確認。
mssql-tools
yum -y install https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm && \
ACCEPT_EULA=Y yum -y install mssql-tools && \
ln -sv /opt/mssql-tools/bin/* /usr/local/bin/
CentOS から sqlcmd
コマンドを実行したいので mssql-tools
パッケージをインストールする。
sqlcmd
sqlcmd -S `docker inspect -f '{{.NetworkSettings.Networks.root_default.IPAddress}}' mssql` -U SA -P 'P@ssw0rd' -Q "SELECT @@VERSION" -W
-
Microsoft SQL Server 2017 (RC2) - 14.0.900.75 (X64)
Jul 27 2017 08:53:49
Copyright (C) 2017 Microsoft Corporation
Developer Edition (64-bit) on Linux (Ubuntu 16.04.2 LTS)
(1 rows affected)
CentOS から mssql コンテナにリクエストを投げて値の取得が成功。