DockerWindows

DockerコンテナでMsSql(Linux版)環境をサクッと構築【テストに便利】

Docker

現在Pythonでプログラミング開発などをしているのですが、MS SQLをデータベースとして使う必要がありました。

もちろん開発PCにMS SQL Experssなどをインストールしてもいいのですが、開発PC内の環境をクリーンにしたかったためDockerコンテナでMS SQL(Linux版)を構築しました。

今回は1つのコンテナだけですが、Docker-composeでファイルとしていつでもテストなどで使いたい時だけコンテナ起動して簡単に使えるようにしてます

試した環境

  • Windows10 Pro バージョン1909
  • CPU:Intel Core i7-2600K
  • メモリ:24GB
  • ディスク:240GB (SSD)

Docker for Windowsのインストール

DockerをWindowsにインストールします。インストールされていない方は方法は以下をご参照下さい。

Docker-composeの準備

作業用のディレクトリ(今回はC:\Docker\mssql-linux)を作成してdocker-compose.ymlを配置します。

設定値などの詳細はこちらの公式を確認してください。

https://hub.docker.com/_/microsoft-mssql-server

今回は2017をインストールしていますが、2019も使えます。

version: '3'
services:
  mssql:
    image: microsoft/mssql-server-linux:2017-latest
    environment:
      ACCEPT_EULA: Y
      MSSQL_SA_PASSWORD: P@ssw0rd
    volumes:
      - ./mssql-volume:/var/opt/mssql/
    ports:
      - "1433:1433"

Dockerコンテナの作成

docker-composeの準備ができたらPowerShellコンソールまたはコマンドプロンプトを立ち上げてから、作業用ディレクトリへ移動してdocker-composeコマンドからコンテナを構築します。

コンテナが立ち上がっているのも確認します。簡単ですね!!!

PS C:\Users\user> cd C:\Docker\mssql-linux

PS C:\Docker\mssql-linux> docker-compose up -d
Creating network "mssql-linux_default" with the default driver
Pulling mssql (microsoft/mssql-server-linux:2017-latest)...
2017-latest: Pulling from microsoft/mssql-server-linux
59ab41dd721a: Pull complete                                                                                             57da90bec92c: Pull complete                                                                                             06fe57530625: Pull complete                                                                                             5a6315cba1ff: Pull complete                                                                                             739f58768b3f: Pull complete                                                                                             0b751601bca3: Pull complete                                                                                             bcf04a22644a: Pull complete                                                                                             6b5009e4f470: Pull complete                                                                                             a9dca2f6722a: Pull complete                                                                                             Digest: sha256:9b700672670bb3db4b212e8aef841ca79eb2fce7d5975a5ce35b7129a9b90ec0
Status: Downloaded newer image for microsoft/mssql-server-linux:2017-latest
Creating mssql-linux_mssql_1 ... done

PS C:\Docker\mssql-linux> docker-compose ps
       Name                   Command           State           Ports
------------------------------------------------------------------------------
mssql-linux_mssql_1   /opt/mssql/bin/sqlservr   Up      0.0.0.0:1433->1433/tcp

動作確認

それでは最後にSQLが正しく動作しているかを確認したいと思います。

もちろんSQL ServerのMagementStudioなどで接続するのがベストではありますが、今回は簡単にVSCodeの拡張機能を利用して接続確認をしたいと思います。

VSCodeの拡張機能から「SQL Server (mssql)」をインストールします。

インストールが終わったら、Add Conncttionをクリックすると上の窓に必要な項目を入力していくダイヤログが出てきますので進めていきます。

まずは接続先のサーバ名です。localhostだけと入力します。ポートがデフォルトの1433以外の場合にはlocalhost:XXXXでポート指定して下さい。

Databaseはまだ作ってないので入力せずにEnterでOKです。

SQL loginを選択します。

ユーザーは「sa」を入力します。

パスワードを入力します。今回はdocker-compose.ymlで指定した「P@ssw0rd」です。

パスワードを記憶するかになります。どちらでもOKです。

接続の名称を入力します。わかりやすい名前を付けてください。

接続に成功するとCONNECTIONSの下に表示されます。

確認のためにデフォルトで作成されているDatabaseのTableを適当に表示してみます。

まとめ

今回はMS SQLサーバをDockerコンテナで簡単に作成しました。

MSSQLサーバを開発PCにインストールするのは結構時間がかかってしまいますが、コンテナであれば5分くらいで構築できてしまいます。めちゃくちゃ便利ですね。

Dockerに関しては早めに使えるようになっておきたいですね。

Dockerのオススメ勉強方法

私がオススメするDocker初心者向けの最初に購入すべき書籍は「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築です。

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築

本書ではDockerの基本的な概念などの座学ももちろんありますが、実際に、Dockerのインストール方法やWebサーバーをコンテナで構築するハンズオンを通じて学習することができるため、特に初心者の方はは分かりやすい内容となっています。

今回は以上となります。

コメント