Closed5

【C#】SQL ServerをDokcerで使ってみる

はるはる

Dockerイメージを作成する手順

  1. Dockerを起動する
  2. 以下をWSLに打つ
docker pull mcr.microsoft.com/mssql/server:2019-latest
  1. 以下をWSLに打つ
    <PASSWORD>の部分は、他のパスワードします。
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<PASSWORD>" \
   -p 1433:1433 --name sql1 --hostname sql1 \
   mcr.microsoft.com/mssql/server:2019-latest
はるはる

作成したデータベースに接続する手順

  1. 以下のコマンドでコンテナにアクセスする
docker exec -it sql1 bash 

mssql@sql1:/$と表示されたらOK
※コンテナから抜けるには、exitと入力する
2. 以下のコマンドで、SQLへ接続する
大体、usernameはsaにしとけばOK

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<PASSWORD>"

1>と表示されたらOK
※SQL接続の解除は、Quitと入力する

docker pull/run/execとは?

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん のp81、p84ページより引用↓

  • docker pull:イメージをダウンロード
  • docker run:コンテナの起動
  • docker exe:実行中のコンテナ内でプログラムを実行する
はるはる

Azure Data StudioやSSMSから接続する

※一部ChatGPT参考

Azure Data Studio

  1. Azure Data Studioを開く
  2. 「新しい接続」をクリック
  3. 以下の情報を入力:
    サーバー名: localhost,1433
    認証タイプ: SQLログイン
    ユーザー名: sa
    パスワード:<PASSWORD>
  4. 「接続」をクリック
    ※証明書を信頼するがでたらそれをクリック

SSMS (SQL Server Management Studio)

  1. SSMSを開きます。
  2. サーバーへの接続をクリック
  3. 以下の情報を入力:
    サーバー名: localhost,1433
    認証: SQL Server認証
    ログイン: sa
    パスワード: <PASSWORD>
  4. 「接続」をクリック
はるはる

【C#】Dockerで起動しているサーバーに接続する

今回は、C#からつなげる方法

  1. Powershellで以下のコマンドを打つ。
IPCONFIG

IPv4 アドレス:となっているところをメモしておく。
2. appsetting.jsonに、以下を追加する

  "ConnectionStrings": {
    "DefaultConnection": "Server=<IP_ADRESS>,1433;Database=MyDatabase;User Id=sa;Password=<PASSWORD>;MultipleActiveResultSets=true;TrustServerCertificate=True;"
  },

ほかは、dotnet ef migrations add Initial dotnet ef database updateしてやればいいだけ。
DONEになっていたら成功。
C#で、SQL使うようのプロジェクトの作り方は、以下を確認すればOK
https://qiita.com/tamtamyarn/items/5a755d4d5d59592a82cd
https://qiita.com/yamazaki_25/items/93274f550e3f754877cc

このスクラップは6ヶ月前にクローズされました