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公式イメージ
- mssql-server Docker Hub: https://hub.docker.com/_/microsoft-mssql-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によるリモート接続
参考記事
- LinuxコンテナイメージでDockerを使用してSQL Serverを実行する:https://learn.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash