Docker(docker-compose) で SQL Server を起動 〜 SQL Server Management Studio で接続するまでの手順です。
事前準備
Docker(バージョン3.0.0以上) + WSL2 をインストールしておきます。docker-compose ファイルの準備
次の内容で [docker-compose.yml] ファイルを作成します。version: '3'
services:
db:
container_name: sqlserver2019_Express
hostname: sqlserver2019_Express
ports:
- "1433:1433"
network_mode: "bridge"
image: mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=saPassword1234
- MSSQL_PID=Express
- MSSQL_LCID=1041
- MSSQL_COLLATION=Japanese_CI_AS
volumes:
- "./mssqlserver/data:/var/opt/mssql/data"
- "./mssqlserver/log:/var/opt/mssql/log"
- "./mssqlserver/secrets:/var/opt/mssql/secrets"
- 7行目: ポート使用済みの場合、左側のポート番号を変更します。 例 1434:1433
- 11行目: 最新版を取得するには「image: mcr.microsoft.com/mssql/server:2019-latest」とします。
- 15行目: パスワードの強度が下がると起動に失敗します。
- 20-22行目: docker-compose.yml ファイルのあるフォルダに mssqlserver フォルダが作成され、データが保存されます。
SQL Server の起動
-
PowerShell(パワーシェル) または コマンドプロンプト を開きます。
- 参考 Windows10 - PowerShell(パワーシェル)の開き方
- 参考 Windows10 - コマンドプロンプトの開き方
- Git Bash などでも動作します。
- [docker-compose.yml] ファイルのあるフォルダ(ディレクトリ)に移動します。
-
次のコマンドを実行します。
docker-compose up
- 初回起動はイメージファイルのダウンロード(約1.5GB)が行われるため、時間がかかります。
- 起動に失敗すると docker-compose の実行が終了します。
起動成功
SQL Server Management Studio で接続
- SQL Server Management Studio を実行します。
-
[サーバーへの接続画面] が表示されるので、次のように入力して [接続(C)] ボタンを押します。
入力欄 入力内容 備考 サーバーの種類(T) データベース エンジン サーバー名(S) localhost,1433 ポート番号を変更した場合、[1433]の部分を変更 認証(A) SQL Server 認証 ログイン(L) sa パスワード(P) saPassword1234 docker-compose.yml のパスワードに合わせる - 接続に成功したら、ユーザーの追加・データーベースの作成 などを行っていきます。
検証環境
- Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64) Sep 23 2020 16:03:08 Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 16.04.7 LTS) <X64>
- Docker image: mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04
- Docker Desktop 3.1.0(51484)
- Docker Engine 20.10.2
- Microsoft SQL Server Management Studio v17.7(14.0.17254.0)
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.789 Experience: Windows Feature Experience Pack 120.2212.551.0