DockerでSQLServerをインストールする

DockerでSQLServerのイメージを作成する
Docker Hub から SQL Server 2019 Linux コンテナー イメージをプルします。
$ sudo docker pull mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
2019-CU3-ubuntu-18.04: Pulling from mssql/server
5b7339215d1d: Pull complete
14ca88e9f672: Pull complete
a31c3b1caad4: Pull complete
b054a26005b7: Pull complete
59f979819d9b: Pull complete
29eb18117119: Pull complete
6de3c1cf897f: Pull complete
172ea0155639: Pull complete
Digest: sha256:e064843673f08f22192c044ffa6a594b0670a3eb3f9ff7568dd7a65a698fc4d6
Status: Downloaded newer image for mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04

SQL Server 2019 Developer Edition のコンテナーが作成されます。
$ sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Passw0rd" \
>    -p 1433:1433 --name sql1 \
>    -d mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
f4729a3a2c1f705083a90f426fc76b94a564857d489141c6588dd14e9fb5920e

# 状態確認
$ sudo docker ps -a
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS                        PORTS                    NAMES
f4729a3a2c1f        mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04   "/opt/mssql/bin/perm…"   2 minutes ago       Up 2 minutes                  0.0.0.0:1433->1433/tcp   sql1
0b278c499633        ubuntu                                                 "/bin/bash"              26 minutes ago      Exited (127) 24 minutes ago                            gifted_shaw

内部接続
# bashで接続
$ docker exec -it sql1 "bash"
mssql@6ad2d9350195:/$

# コンテナ内では、sqlcmdでDBへ接続する。
# PATHが通っていないのでフルパス指定する。
$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Passw0rd"
1> CREATE DATABASE TestDB
2> GO
1> SELECT Name from sys.Databases
2> GO
Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
TestDB
CTRL-Zで抜ける。
外部接続 デフォルトでは、外部接続は不可。
以下のコマンドで可能にする。
$ docker exec -it sql1 "bash"
mssql@6ad2d9350195:/$  /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Passw0rd
1> sp_configure 'remote admin connections',1;
2> GO;
3> RECONFIGURE;
4> GO;

# 外部接続
sqlcmd -S 127.0.0.1 -U SA -P "Passw0rd"
1> SELECT Name from sys.Databases
2> GO
Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
TestDB

参考 クイック スタート:Docker を使用して SQL Server コンテナー イメージを実行する

コメント

このブログの人気の投稿

ソリューション構成ごとにconfigファイルを作成する

C++の古いプロジェクトのビルドでerror MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

web.config debug/releaseの内容を変換構文を使って切り替える