Mac には直接 SQL Server をインストールすることができません。

なので SQL Server を使用したい場合は、クラウドサービスの Azure SQL Database を使用する必要があります。

しかし、Azure SQL Database は使用している時間に比例してお金がかかるので、使わない期間も残しておくわけにはいきません。

そこで本記事では、ローカル環境で SQL Server を使用するために、Docker で実行環境を構築する手順を紹介しました。

「Mac でもお金をかけずに SQL Server の構築をしたい」という人は、ぜひこの記事の手順を試してみてください。

ちなみに、Mac のチップが Intel か M1 で手順が異なるので、注意してください。

それでは、さっそく見ていきましょう。

Docker Desktop の準備

Docker Desktop のインストール

Docker のインストールは、GUI で操作できる Docker Desktop を経由するのが楽なので、以下のボタンからインストールしましょう。

以下の条件に当てはまる場合、Docker Desktop は「有料」になるので注意してください。個人で使用する場合は気にしなくて問題ありません。

  • 従業員が 250 人以上
  • 年間収益が 1000 万ドル以上

Docker メモリの増量

SQL Server の実行には最低でも 2GB が必要で、Docker のメモリもちょうど 2GB になっています。

メモリ不足で動かなくなると困るので、4GB くらいに上げておくといいでしょう。

mac-sql-server

最後に、「Apply & Restart」で変更を保存してください。

SQL Serverの実行環境を構築する(Intel)

Docker Image の 取得

Docker Hub の SQL Server のページも合わせてご覧ください。

以下のコマンドを実行して、SQL Server の Docker Image を取得します。

$ docker pull mcr.microsoft.com/mssql/server

正常に pull できた場合は、「docker images」のコマンドを実行すると「mcr.microsoft.com/mssql/server」が出てきます。

$ docker images
REPOSITORY                       TAG           IMAGE ID       CREATED         SIZE
mcr.microsoft.com/mssql/server   latest        d78e982c2f2b   2 weeks ago     1.48GB

コンテナの作成

pull してきた Docker Image から、コンテナを作成します。

$ docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong()Password" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

例えば「!」など、パスワードに含まれる記号によってはうまく実行できませんでした。

run が完了したら、以下のコマンドを実行して「mcr.microsoft.com/mssql/server」が起動していることを確認します。

$ docker ps
CONTAINER ID   IMAGE                                        COMMAND                  CREATED       STATUS         PORTS                    NAMES
e6a3a16c30f2   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   2 hours ago   Up 3 seconds   0.0.0.0:1433->1433/tcp   musing_roentgen

Docker 上での環境構築としてはこれで完了です。

SQL Serverの実行環境を構築する(M1)

Docker Image の 取得

Docker Hub の Azure SQL Edge のページも合わせてご覧ください。

記事の執筆日時点では、SQL Server の Docker Image からコンテナを作成してもエラーとなってしまうため、「Azure SQL Edge」というイメージを使用します。

以下のコマンドを実行して、Azure SQL Edge の Docker Image を取得してください。

$ docker pull mcr.microsoft.com/azure-sql-edge

正常に pull できた場合は、「docker images」のコマンドを実行すると「mcr.microsoft.com/mssql/server」が出てきます。

$ docker images
REPOSITORY                         TAG       IMAGE ID       CREATED         SIZE
mcr.microsoft.com/azure-sql-edge   latest    5dba915af82f   5 weeks ago     1.83GB

コンテナの作成

pull してきた Docker Image から、コンテナを作成します。

docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=Password.1' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge

例えば「!」など、パスワードに含まれる記号によってはうまく実行できませんでした。

run が完了したら、以下のコマンドを実行して「mcr.microsoft.com/mssql/server」が起動していることを確認します。

$ docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED       STATUS       PORTS                              NAMES
0655e9cb8f78   mcr.microsoft.com/azure-sql-edge   "/opt/mssql/bin/perm…"   5 hours ago   Up 5 hours   1401/tcp, 0.0.0.0:1433->1433/tcp   great_engelbart

Docker 上での環境構築としてはこれで完了です。

DB を参照するための環境構築

以降の作業は必須ではありませんが、データベースの中身を参照したり編集したりするのに便利なツールをインストールします。

Windows の場合は「SQL Server Management Studio」というツールがありますが、Mac では使用できません。

そこで、代替ツールとして「Azure Data Studio」をインストールします。

Microsoft が公式に出しているツールなので安心です。

Azure Data Studio のインストール

公式サイトの手順に従って、Azure Data Studio のインストールをしてください。

zip ファイルをダウンロードして解凍し、appファイルをアプリケーションフォルダに移動するだけです。

接続の追加

インストールができたら、起動しましょう。

起動すると「Add Connection」というボタンが出るので、そこから接続の追加をします。

mac-sql-server
ペンギンくん
ペンギンくん
Visual Studio Code にそっくりだ。

以下の情報を入力して、Connect を押しましょう。

Connection Type Microsoft SQL Server
Server localhost
User name sa
Password コンテナ作成時に指定したパスワード
mac-sql-server

正常に接続ができると、以下のような画面になります。

mac-sql-server

テーブル作成のクエリを実行して、サンプルデータを投入したあと、データの中身を見てみると以下のように見えます。

mac-sql-server

テーブルの作成はクエリを発行しないとできませんでしたが、レコードの追加や修正、参照はマウス操作でかんたんに操作できました。

Azure Data Studio は Microsoft が公式に出している無料のツールなので、積極的に使っていきましょう。

データベースを参照する類似ツールは他にもたくさんあるので、自分にあったツールを使っても問題ありません。

最後に

Docker を使って、Mac に SQL Server の実行環境を構築する手順について解説しました。

ローカル環境に構築してしまえば、無料で使い続けることができるのでいいですね。

この記事を参考に、ぜひ環境構築をしてみてください。

Blazor の書籍も好評発売中!
blazor-book

入門編から EC サイトを作る応用編まで、Blazor の本を3冊執筆しました。

私が1年以上かけて学習した内容をすべて詰め込んでいるので、さらにステップアップしたい方はぜひご覧ください。