1
1

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 3 years have passed since last update.

SQLServer(Linux)のDockerコンテナを作成(2021年)

Last updated at Posted at 2021-09-24

0. 前提条件

  • OS:Windows10
  • Docker Desktopがインストール済み。

1. マウントするディレクトリ作成

  • docker-comopse.ymlと同じ階層に以下のフォルダを作成。
 docker
    └ sqlserver
      ├ data
      ├ log
      └ secrets

2. docker-compose.yml作成

version: '3'
services:
    mssql:
      image: mcr.microsoft.com/mssql/server:2019-latest
      container_name: mssqlserver01
      ports:
        - 1433:1433
      environment:
        - ACCEPT_EULA=Y
        - SA_PASSWORD=任意の文字列
        - MSSQL_PID=Express
        - MSSQL_LCID=1041
        - MSSQL_COLLATION=Japanese_CI_AS
      volumes:
        - "./docker/sqlserver/data:/var/opt/mssql/data"
        - "./docker/sqlserver/log:/var/opt/mssql/log"
        - "./docker/sqlserver/secrets:/var/opt/mssql/secrets"

3. SQLServer Management Studioをインストール

  • 以下のサイトからインストーラーをダウンロード。

  • 管理者権限でインストーラーを実行。
  • インストール中に、エラーが出た場合は、再起動して再度同じ手順を実行。

4. コンテナ作成と起動

  • docker-compose.ymlが配置されたディレクトリで、以下を実行。
docker-compose up

5. StudioでSQLServerに接続

  • 以下のログイン情報で接続。

image.png

  • ポイントは以下。
Service type: Database Engine
Server name: localhost
Authentication: SQL Server Authentication
Login: sa
Password: [docker-composeで定義したパスワード]

6. StudioでDB作成

  • StudioのエクスプローラーのDatabaseを右クリックしてデータベースを新規作成。

image.png

7. テーブル作成、テストデータ投入

  • Studioで作成したDBを選択肢、クエリを作成。

image.png

  • クエリに以下を貼り付けて、F5か実行ボタンを押す。

CREATE TABLE clients (
    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    NAME NVARCHAR(20) NOT NULL,
    UPDATE_AT DATETIME default CURRENT_TIMESTAMP
);

CREATE TABLE crews (
    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    NAME NVARCHAR(20) NOT NULL,
    UPDATE_AT DATETIME default CURRENT_TIMESTAMP
);


INSERT INTO clients (name) VALUES ('client1');
INSERT INTO clients (name) VALUES ('client2');

INSERT INTO crews (name) VALUES ('crew1');
INSERT INTO crews (name) VALUES ('crew2');

テーブルを選択して、データを抽出。

image.png

以上でコンテナ作成からデータ取得のテストまで。

1
1
1

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?