Microsoftが提供しているSQL ServerをmacOSの環境で使用する方法を解説する。
M1/M2が搭載されている場合、
『Microsoft SQL Server』をコンテナ化して正常に起動させることができない。(執筆時点)
そのため、この記事では『Microsoft SQL Server』ではなく、『Azure SQL Edge』を紹介する。
Docker Hub に公式イメージがあるので、簡単にコンテナ化して起動することが可能だ。
筆者の環境はM2 MacBook Air を使用しており、問題なくSQL Serverを起動、接続できることを確認済み。
この記事では、Azure SQL EdgeをDockerを使用してコンテナ化する手順をわかりやすく解説していく。
Docker
先述したとおり、SQL Serverをコンテナ化して起動するため、Dockerを使用できる環境が必要。
Docker Desktopをインストールするだけで済むので、未対応の場合は以下の手順も合わせてご覧いただきたい。
-
【M2・Apple Chip対応】macOSのDocker Desktopのインストール方法
開発には欠かせないDockerは、多数のコンテナを管理してサービスを実行することができる。 仮想マシンと比較して、導入コストが低く、軽量で動作が軽いため支持されている。 そこで、本記事では『Docke ...
続きを見る
Azure SQL Edge コンテナ化
概要
公式のページを抜粋すると以下。
占有領域が少なく、エッジに対して最適化され、AIが組み込まれたSQLデータベースエンジン。
https://azure.microsoft.com/ja-jp/products/azure-sql/edge/#product-overview
今回はMicrosoftが提供しているDockerエンジン用のイメージを使用。
docker-compose.yml
にて定義してコンテナ化をする。
要件
コンテナ化するにあたって、以下のような要件が求められる。
要件
- Docker Engine 1.8+
- 1GB以上の十分なメモリを割り当てる
- 各環境変数の定義
- セキュリティの強度が高いパスワード設定
詳細については、docker hubを合わせて参照していただきたい。
docker-compose.yml
コンテナ化するにあたってdocker-compose.yml
を使用して定義する。
内容は以下。順に解説をしていく。
version: '3'
services:
mssql:
image: mcr.microsoft.com/azure-sql-edge:latest
environment:
- MSSQL_SA_PASSWORD=P@ssw0rd
- ACCEPT_EULA=Y
# デフォルトがDeveloperのため必要に応じて変更する
# - MSSQL_PID=Developer
ports:
- 1433:1433
使用するイメージは mcr.microsoft.com/azure-sql-edge:latest
。
各環境変数の設定が必要なため、それぞれ定義をしている。
MSSQL_SA_PASSWORD
にて、パスワードを設定する。ACCEPT_EULA
は、ライセンスのへ同意を確認するためのもの。MSSQL_PID
はライセンスを指定できる。デフォルトではDeveloper
のため必要に応じて変更する。
ポートはデフォルトの1433
を指定した。
起動確認
docker-compose.yml
を定義後、以下のコマンドで起動する。
docker-compose up -d
個別に指定して起動したい場合は以下。
docker-compose up -d mssql
初回はイメージがないのでpullが実行されるだろう。
正常に実行が完了すると以下のような出力が表示される。
% docker-compose up -d
Pulling mssql (mcr.microsoft.com/azure-sql-edge:latest)...
latest: Pulling from azure-sql-edge
xxxxxxxxxxxx: Pull complete
...
Digest: xxxxxxxxxxxx
Status: Downloaded newer image for mcr.microsoft.com/azure-sql-edge:latest
Recreating docker_mssql_1 ... done
以下のコマンドでコンテナを確認する。
docker-compose ps
指定したポートでステータスがUpになっている(起動されている)ことが確認できる。
% docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------
docker_mssql_1 /opt/mssql/bin/permissions ... Up 1401/tcp, 0.0.0.0:1433->1433/tcp
まとめ
以上、docker-compose.yml
を使用してAzure SQL Edgeをコンテナ化して起動する手順を解説した。
M1/M2の場合はMicrosoft SQL Serverのコンテナが起動しないため、Azure SQL Edgeを是非試してみていただきたい。
この記事が少しでも参考になると幸いだ。
他にもプログラミング等に関する記事をまとめているので、合わせてご覧いただきたい。
-
【M2対応・最新版】MacBookを購入したら必須・オススメの設定を紹介!
2022/07/15 発売のM2のMacBook Airが、先日私の手元にも届いた。 すぐに虹色のクルクルが表示されるIntel製のMacBook Airをずっと使用していたので、ついに買い替えること ...
続きを見る
最後まで目を通していただき、ありがとうございました。