3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Install SQL Server 2019 CTP3.2 (RHEL) on Docker

Last updated at Posted at 2019-08-12

はじめに

SQL Server 2017より、SQL Server on Linuxが登場し、コンテナ環境でSQL Serverが利用できるようになりました。ただし、これは Ubuntu ベースのコンテナのみの提供であり、RHELベースのコンテナがほしいユーザーもいたかと思います。

SQL Server 2019からは、現行のUbuntuベースに加え、新たにRHELベースのコンテナも利用できるようになりました。そのため、今回はRHELベースでのSQL ServerコンテナをDockerにてインストールしてみようと思います。

MS公式ドキュメントは こちら を参照してください。
スクリーンショット 2019-08-12 14.49.21.png

また、Docker Hubは こちら です。参考にしてください。
スクリーンショット 2019-08-12 15.01.42.png

環境

今回は、以下の環境でインストールを実施しています。

- OS: macOS Mojave 10.14.6
- Docker Desktop: 2.1.0.0 (36874)
- Docker Engine: 19.03.1
- Docker Compose: 1.24.1

また、インストールしたSQL Serverコンテナのバージョンは、2019-CTP3.2です。
※2019/8/12現在にて公開されている、SQL Server 2019の最新バージョンです。これは、GA(General Availability)されているものではありません。

インストール

Yamlファイルは、GitHub上でも公開しています。面倒な方はこちらからYamlファイルを取得してください。

docker-compose.yaml
version: '3'

services:
  mssql:
    image: mcr.microsoft.com/mssql/rhel/server:2019-CTP3.2
    container_name: 'mssql2019-ctp32-rhel'
    hostname: 'localhost'
    environment:
      - MSSQL_SA_PASSWORD=<your_strong_password>
      - ACCEPT_EULA=Y
      # - MSSQL_PID=<your_product_id> # default: Developer
      # - MSSQL_PID=Express
      # - MSSQL_PID=Standard
      # - MSSQL_PID=Enterprise
      # - MSSQL_PID=EnterpriseCore
    ports:
      - 1433:1433
    # volumes: # Mounting a volume does not work on Docker for Mac
    #   - ./mssql/log:/var/opt/mssql/log
    #   - ./mssql/data:/var/opt/mssql/data
  • MSSQL_SA_PASSWORDの<your_strong_password>は、任意の強力なパスワードに書き換えてください。
  • MSSQL_PIDは、指定しない場合はデフォルトで開発者モード(Developer Edition)で起動します。SQL Server 2019は2019/8/12現在、GAされていないので、こちらは指定しなくても問題無いかと思います。(Developer Editionなどでコンテナを起動すると、起動時のログ内にて有効期限のようなものが表示されます)
  • Docker for Macでは、Volumesのマウントを指定すると起動時にエラーになるため、Volumesはコメントアウトしてください。(Known Issuesとして報告されています)

コンテナ起動

docker-compose up -dにて、コンテナを起動してください。

接続

docker-compose logs -fでログを表示し、以下の内容が表示されれば、SQL Serverに接続可能です。
sqlcmdやSSMS、Azure Data Studioを使用して、環境にアクセスできることを確認してください。

2019-08-12 05:09:04.14 spid23s     Server is listening on [ ::1 <ipv6> 1431].
2019-08-12 05:09:04.14 spid23s     Server is listening on [ 127.0.0.1 <ipv4> 1431].
2019-08-12 05:09:04.16 spid23s     SQL Server is now ready for client connections. This is an informational message; no user action is required.

sqlcmd

SQL Serverのコンテナに入り、sqlcmdを起動して、SQL Serverに接続できます。
docker psでコンテナIDを確認します。

$ docker ps
CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                    NAMES
980e6adccd38        mcr.microsoft.com/mssql/rhel/server:2019-CTP3.2   "/opt/mssql/bin/sqls…"   2 hours ago         Up 16 minutes       0.0.0.0:1433->1433/tcp   mssql2019-ctp32-rhel

docker execでコンテナにログインします。

$docker exec -it 980e6adccd38 "bash"

コンテナ内に入ったら、sqlcmdを起動して、SQL Serverにログインします。
<YourPassword>は、MSSQL_SA_PASSWORDで指定した値に書き換えてください。
sqlcmdが起動したら、接続成功です。

[root@localhost /]# /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'
1>

SSMS

今回はMac環境での実行のため、SSMSは利用できないので実施しません。
接続のための入力値などは、Azure Data Studioの欄を参考にしてください。

Azure Data Studio

Connection Detailsの欄を参考に、値を入力してください。
入力内容に問題がなければ、Connectボタン押下にて、SQL Serverに接続できます。

スクリーンショット 2019-08-12 16.02.01.png

関連リンク

参考情報

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?