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 くらいに上げておくといいでしょう。
最後に、「Apply & Restart」で変更を保存してください。
SQL Serverの実行環境を構築する(Intel)
Docker Image の 取得
以下のコマンドを実行して、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 の 取得
記事の執筆日時点では、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」というボタンが出るので、そこから接続の追加をします。
以下の情報を入力して、Connect を押しましょう。
Connection Type | Microsoft SQL Server |
---|---|
Server | localhost |
User name | sa |
Password | コンテナ作成時に指定したパスワード |
正常に接続ができると、以下のような画面になります。
テーブル作成のクエリを実行して、サンプルデータを投入したあと、データの中身を見てみると以下のように見えます。
テーブルの作成はクエリを発行しないとできませんでしたが、レコードの追加や修正、参照はマウス操作でかんたんに操作できました。
Azure Data Studio は Microsoft が公式に出している無料のツールなので、積極的に使っていきましょう。
データベースを参照する類似ツールは他にもたくさんあるので、自分にあったツールを使っても問題ありません。
最後に
Docker を使って、Mac に SQL Server の実行環境を構築する手順について解説しました。
ローカル環境に構築してしまえば、無料で使い続けることができるのでいいですね。
この記事を参考に、ぜひ環境構築をしてみてください。
入門編から EC サイトを作る応用編まで、Blazor の本を3冊執筆しました。
私が1年以上かけて学習した内容をすべて詰め込んでいるので、さらにステップアップしたい方はぜひご覧ください。