2018/05/19
はじめに
Docker Hub にあるSQL Serverイメージを使って、DockerでSQL Serverを動かします
Docker 18.05 (Edge) で確認しました
Docker HUB
https://hub.docker.com/r/microsoft/mssql-server-linux/
イメージの取得
Docker Hub から SQL Server 2017 Linux のイメージをpullします
コマンド
1 2 |
docker pull microsoft/mssql-server-linux:2017-latest |
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ docker pull microsoft/mssql-server-linux:2017-latest 2017-latest: Pulling from microsoft/mssql-server-linux f6fa9a861b90: Pull complete da7318603015: Pull complete 6a8bd10c9278: Pull complete d5a40291440f: Pull complete bbdd8a83c0f1: Pull complete 3a52205d40a6: Pull complete 6192691706e8: Pull complete 1a658a9035fb: Pull complete d057e89d8e94: Pull complete 1ed0a0d4098f: Pull complete Digest: sha256:b5d494d104394b8c1f451406f4062ab711add3032af52241140b7e27a01d8851 Status: Downloaded newer image for microsoft/mssql-server-linux:2017-latest |
SQL Server コンテナ の実行
コマンド
1 2 3 4 |
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=' \ -p 1433:1433 --name \ -d microsoft/mssql-server-linux:2017-latest |
オプションの説明
Option | 説明 |
---|---|
-e ‘ACCEPT_EULA=Y’ | 使用許諾契約書の同意 |
-e ‘MSSQL_SA_PASSWORD=<Password>’ | saユーザのパスワード ※ |
-p 1401:1433 | コンテナ1433とホスト1433のポートをマッピング |
–name <Container Name> | コンテナの名前 |
-d microsoft/mssql-server-linux:2017-latest | コンテナイメージ |
※ パスワードの長さは少なくとも 8 文字で、大文字、小文字、十進数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。
実行例
1 2 3 4 5 |
$ docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Password1234' \ -p 1401:1433 --name sqlsvr \ -d microsoft/mssql-server-linux:2017-latest 30605464e600791331718ee1322f08c3ab7d00c33bfa4fcf1dc2ea09864e5f1c |
コンテナの稼働の確認
コマンド
1 2 |
docker ps |
実行例
1 2 3 4 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 30605464e600 microsoft/mssql-server-linux:2017-latest "/opt/mssql/bin/sqls…" About a minute ago Up About a minute 0.0.0.0:1401->1433/tcp sqlsvr |
コンテナ内部からSQL Serverに接続
コンテナのbashコンソールを開いて、sqlcmdを実行します
Bashコンソール
コマンド
1 2 |
docker exec -it "bash" |
実行例
1 2 3 |
$ docker exec -it sqlsvr "bash" root@30605464e600:/# |
sqlcmd
コマンド
1 2 |
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '' |
実行例
1 2 3 |
# /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password1234' 1> |
SQLの実行
実行例
1 2 3 4 5 6 7 8 |
1> select @@servername 2> go -------------------------------------------------------------------------------------------------------------------------------- 30605464e600 (1 rows affected) |
コンテナ外部からSQL Serverに接続
sqlcmd
実行例
1 2 |
$ sqlcmd -S 192.168.1.1,1433 -U sa -P 'Password1234' |