Docker for WindowsでMySQL環境構築

こんにちは、エンジニアのNakataです。入社当初はJavaScriptでの画面開発を主に行っていましたが、最近は様々な言語やデータベースを使った開発や業務にも携わっています。そんな業務の一部でMySQLを使用することになったのですがインストールがうまくいかず、調べてみると.NET Framework周りが原因と判明しました。ですがC#での開発も行っており、設定はできるだけ変えたくないという問題もありました。そこで先輩に相談すると簡単にMySQL環境を用意できるDockerを勧められ、使ってみるととても便利でした。今回はそのDockerについてまとめていきたいと思います。

Dockerとは

Dockerとは環境の設定がコード化されたファイルから目的の仮想環境を作成することができる、仮想化ソフトウェアです。環境の設定がコード化されたファイルはDockerfileと呼ばれ、このファイルに環境の設定を書き込むことができます。DockerfileからDockerイメージを作成することができ、このDockerイメージから仮想環境が構築されます。Dockerイメージから構築された仮想環境がDockerコンテナです。このDockerコンテナ内で目的のアプリケーションを動作させることが可能になります。

Dockerには以下の特徴やメリットがあります。

環境構築の簡易化
Dockerイメージを取得しDockerコンテナを起動するだけで、目的のアプリケーションを動作させるための環境が作成できます。これによりデプロイ作業を簡単に行うことができます。また作成した環境でうまくいかなかったとき、環境を壊して破棄することもできます。
オーバヘッドが少ない
Dockerコンテナはよく仮想マシンと同じだと思われがちですが異なる点があります。仮想マシンはハイパーバイザー上で動作しますが、Dockerはハイパーバイザー上ではなくOSの中核であるカーネルを共有することで動作します。そのため仮想マシンよりオーバヘッドが少なく軽くなります。
環境のコード化
Dockerでは作成した環境をDockerイメージとして保存し共有することができます。共有されたDockerイメージを取得することで、どこでも全く同じように動作する環境を用意することが可能になります。またコード化することで設定の確認や変更が楽になります。

Docker for Windows導入

今回はDocker for Windowsを使用しました。使用したPCのOSとスペックは以下になります。

  • OS:Windows 10 Pro
  • CPU:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 1.99GHz
  • メモリ:16.0GB

以下のダウンロードページからインストーラーをダウンロードします。その際アカウントの作成が必要になります。
https://store.docker.com/editions/community/docker-ce-desktop-windows
インストーラーを起動し表示される指示通りにインストールを進めます。インストールが完了したら再起動しましょう。エラーが表示されなくなり以下のように表示されていれば設定完了です。

MySQL環境構築

MySQLのDockerイメージからDockerコンテナの作成を行い、MySQL環境を構築します。
以下のコマンドでMySQLのDockerイメージをDocker Hubから入手し、コンテナの作成と起動までを行います。
Docker HubとはDockerイメージを共有できるレジストリサービスです。また、今回使用したDockerイメージはこちらになります。

設定については以下のようになっています。詳しい設定方法についてはこちらに書いてあります。

  • –name:コンテナに割り当てられる名前
  • -e MYSQL_ROOT_PASSWORD:rootユーザーのパスワード
  • -p:ポートフォワーディングの設定
  • -d:MySQLのバージョン指定 latestで最新のバージョンを取得

これでMySQL環境の構築が完了しました。以下のコマンドで起動中のコンテナを表示することができます。

MySQLクライアントから接続確認をしてみましょう。
今回はMySQL Workbenchから確認しました。

成功です。

最後に

今回はWindows上でDocker for Windowsを使用しMySQL環境を構築しました。Dockerでの環境構築は思っていたより簡単で使ってみると楽でした。今後もちょっとした開発を行う時などに使っていきたいと思います。

最近の記事

  • 関連記事
  • おすすめ記事
  • 特集記事

アーカイブ

カテゴリー

PAGE TOP