データベース

MacにSQL Serverの実行環境を構築する手順【Dockerを使用】

mac-sql-server

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年以上かけて学習した内容をすべて詰め込んでいるので、さらにステップアップしたい方はぜひご覧ください。