SQL ServerをDockerで起動して別コンテナからアクセスする
SQL Server
をDocker
で起動して別コンテナからアクセスする方法を紹介します。
SQL Server
への接続はVSCode
で行います。
SQL Serverコンテナの設定
ASP.NET(.NET Core)の開発環境をDockerで構築するで紹介したdocker-compose.yml
を以下のように編集します。
サービス名の「db」はSQL Server
に接続時に必要になるので、覚えておきます。
SA_PASSWORD
は英数字や記号を使ったものにする必要があります。
docker-compose.yml
version: '3'
services:
app:
build: ./docker/app
tty: true
volumes:
- ./app:/code
depends_on:
- db
db:
image: "mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04"
environment:
SA_PASSWORD: "Password@123"
ACCEPT_EULA: "Y"
VSCodeから接続
VSCode
でappコンテナを開きます。
VSCode
でDocker
コンテナを開く方法はDocker コンテナをVSCodeで開いて開発環境を構築するで詳しく紹介しています。
また、SQL Server
に接続するためのVSCode
の拡張機能ms-mssql.mssql 1をインストールするように設定しておきます。
devcontainer.json
"extensions": [
"ms-dotnettools.csharp",
"msjsdiag.debugger-for-chrome",
"editorconfig.editorconfig",
"ms-mssql.mssql"
],
接続をする前にからのファイルを開いておきます。
Ctrl+Shift+pでコマンドパレットを起動し、MS SQL:Connect
を選択します。
現在開いているファイルの言語モードをSQL
にする必要があるので「Yes」を選択します。
言語モードの選択モードになるので、「SQL」を選択します。
選択後、開いているファイルの言語モードがSQL
になったことを確認できます。
接続情報を選択します。
過去に接続したことがある場合は接続設定の候補が出てきますが、初めて接続する場合は「Create Connection Profile」を選択します。
ホスト名を入力します。
SQL Server
コンテナのサービス名「db」を入力します。
データベース名を指定します。
初回接続時はデータベースは作成していないと思うので、未入力のままEnterをクリックします。
認証タイプが聞かれるので、SQL Login
を選択します。
ユーザー名は「sa」を入力します。
パスワードはdocker-compose.yml
で設定したSA_PASSWORD
を入力します(上記のファイルの場合は「Password@123」)
パスワードを保存するか聞かれるので、保存する場合は「Yes」を選択します。
プロファイル名(接続情報を管理する名前)を設定する場合はプロファイル名を入力します。
SQL Server
の拡張機能のアイコンをクリックすると、SQL Server
に接続されていることが確認できます。
- https://marketplace.visualstudio.com/items?itemName=ms-mssql.mssql ↩