Dockerを使用したMS SQL ServerのセットアップとNavicatによるリモート接続

Microsoft SQL Server概要

Microsoft SQL Server(SQL Server)はマイクロソフトが開発したリレーショナルデータベース管理システムです。強力で高性能なエンタープライズ級データベースプラットフォームとして、大規模データセットの保存と処理、効率的なクエリと分析操作をサポートします。SQL ServerはT-SQL、ADO.NET、ODBC、OLE DBなど幅広いアプリケーション開発インターフェース(API)をサポートし、Windows、Linux、Dockerなどの複数のオペレーティングシステムに対応しています。データウェアハウス、分析サービス、レポートサービス、全文検索などの多くの高度な機能とコンポーネントを含み、企業に包括的なデータ管理と分析ソリューションを提供します。

UbuntuベースのMicrosoft SQL Server公式イメージ

Microsoft SQL Server 2022コンテナイメージのプル

sudo docker pull mcr.microsoft.com/mssql/server:2022-latest

mssqlイメージのローカルへのプル確認

以下のコマンドを使用してmssqlイメージがローカルに正常にプルされたか確認します:

docker images

mssqlコンテナの作成と実行

以下のコマンドを使用してコンテナを起動します(Dockerイメージ起動後、SQL Serverが自動的に起動します)。ここでのDbAdmin@2023はSQL Server saユーザーのパスワードです:

このコマンドは、バックグラウンドモード(-d)でMicrosoft SQL Server 2022の最新バージョン(mcr.microsoft.com/mssql/server:2022-latest)イメージを実行し、コンテナにmssql2022という名前を付ける(--name mssql2022)ことを意味します。同時に、-p 1433:1433パラメータを使用してコンテナの1433ポートをホストの1433ポートにマッピングし、ホストの1433ポート経由でSQL Serverにアクセスできるようにします。コンテナ起動プロセスでは、2つの環境変数を設定する必要があります:ACCEPT_EULA=Yは使用条件に同意することを示します。MSSQL_SA_PASSWORD=DbAdmin@2023はSAユーザーのパスワードを"DbAdmin@2023"に設定します[パスワードは必ず厳格に設定する必要があります、そうでないと問題が発生します]。

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=DbAdmin@2023" -p 1433:1433 --name mssql2022 -d mcr.microsoft.com/mssql/server:2022-latest

重要な注意点:DockerでSQL Serverコンテナをデプロイ後、数秒で停止してしまう問題

SA_PASSWORD=DbAdmin@2023をパスワードとして使用する場合、最低8文字の強力なパスワードが必要です。大文字、小文字、数字、特殊記号を含める必要があります。そうでない場合、大きな問題(DockerでSQL Serverコンテナを起動後、数秒で停止してしまう)が発生します。

コンテナの作成成功確認

docker ps

docker psで表示されない場合はdocker ps -aで確認してください。docker ps -aで表示される場合は、コンテナが起動していないことを意味します。docker start nameを使用してコンテナを起動する必要があります!

Dockerホストのファイアウォールルール設定

デフォルトでは、Dockerには組み込みのファイアウォールがあり、外部からSQL Serverにアクセスするために1433ポートを開放する必要があります。以下のコマンドを使用してDockerホストの1433ポートを開放します:

sudo ufw allow 1433/tcp

ファイアウォールを再起動します。再起動後に設定が有効になります:

sudo ufw reload

サーバーファイアウォールでの1433ポート開放設定

Navicatによるリモート接続

参考記事

タグ: Docker SQL Server Navicat データベース コンテナ

6月17日 21:08 投稿