Docker の SQL Server へ SSMS で接続してみた

技術

はじめに

Docker で立ち上げた SQL Server へ向けて、SSMS を使って接続してみました。

意外なところで沼ったので、備忘録として残しておきます。


構成

構成はこんな感じ。

.NET 系の Web システムを Linux 上で動かす構成を考えていたら、こうなってしまいました。

デバッグ (というか動作確認) は実環境に合わせて VirtualBox の Ubuntu に構築するとして、ビジュアル的に SQL Server を操作するには SSMS が必要になりました。

(僕がコマンドライン上で SQL Server を扱うのが苦手というのは内緒)

そこで、VirtualBox の Windows に SSMS をインストール (メインPC は汚したくなかった) し、そこから Docker Container の SQL Server へ接続する必要が出てきました。


SQL Server の立ち上げ

まず、Docker で SQL Server を立ち上げます。

  sqlserver:
    image: mcr.microsoft.com/mssql/server:2019-latest
    ports:
      - "1433:1433"
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=Password123!

最低限の構成は意外とシンプル。

テスト用なのでポートフォワーディングやらパスワードやらは簡単なものでOK。

(外部からは接続させず、Docker 内で接続を完結させるならこのままでもいい気はします)


SSMS を使った接続

まずは、ログイン情報を設定します。

  • Server name: 192.168.x.y,1433
  • Authentication: SQL Server Authentication
    • Login: sa
    • Password: Password123!

サーバー名はメインPC (VirtualBox で VM を立ち上げているマシン) のホスト名とポートを指定します。

(ポートが : ではなく , で区切る必要があるところで軽く沼りました)

ログイン名は既定の sa (System Administrator) を指定します。

次に、追加の接続パラメータを設定します。

TrustServerCertificate=True

(この設定が無いことで沼り散らかしました)

後は接続するだけ!


トラブルシューティング

接続できない時は、Windows の VM 内で Test-NetConnection -ComputerName 192.168.x.y -Port 1433 で接続を検証したり、Linux の VM内で docker ps で起動を確認したり、docker logs <ContainerID> でログを確認したりします。

(まぁ沼ってた時はこれらは通っていたので、かなり苦しみました…)


終わりに

.NET 系のデバッグ、動作確認は Linux 上で行い、開発、DB の確認は Windows 上で行うという構成に一歩近付けたと思います。

やはり DB の中身はビジュアル的に見たいですからね! (←逃げとか言わないでほしい)

また、今回はかなーり Chat GPT 助けられました。

エラーの詳細情報をそのまま貼り付けて「どこがおかしい!?」と何回も聞きまくりました。

何回聞いても嫌な顔せず考えてくれるのは本当に心強いです。

今後も AI を活用しながら、自前サービスを時短でゴリゴリ作っていきたいですね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です