広告 DB

【M2】Azure SQL Edge(SQL Server)のdockerコンテナ起動方法!

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をインストールするだけで済むので、未対応の場合は以下の手順も合わせてご覧いただきたい。

CHECK
【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をずっと使用していたので、ついに買い替えること ...

続きを見る

最後まで目を通していただき、ありがとうございました。

-DB
-,