【Docker】Windowsのローカル環境にMySQLを構築する

こんにちは、Jeannieです。

Dockerを使ってローカル環境にMySQLを構築する手順です。

前提

  • OSはWindows
  • Docker Desktop for Windowsがインストール済みであること

概要

以下の手順で構築していきます。

  1. Dockerイメージ取得
  2. コンテナ作成
  3. コンテナ起動

詳細

手順① Dockerイメージ取得

以下のコマンドでDockerHubからMySQLのイメージを取得します。

docker pull mysql

pullコマンドはDockerHubからイメージをダウンロードするコマンドです。

上記のコマンドを実行することで、DockerHubから最新のMySQLイメージがダウンロードされます。

特定のバージョンを指定する場合は「mysql:tag」のようにtagの部分でバージョンを指定します。

docker pull mysql:8.0

タグを指定しない場合、:latestがデフォルトで指定されるため、最新のイメージがダウンロードされます。

指定可能なタグはこちらのページを参照ください。

ダウンロードされたイメージは以下のコマンドで確認できます。

docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mysql        latest    c0cdc95609f1   7 days ago   556MB

手順② コンテナ作成

以下のコマンドでコンテナを作成します。

docker create --name mysql -e MYSQL_ROOT_PASSWORD=root -p 33306:3306 mysql

createコマンドは、イメージからコンテナを作成するコマンドです。

上記コマンドを実行することで、MySQLのイメージからコンテナが作成されます。

手順①でMySQLのイメージを取得していますので、そのイメージを元にコンテナが作成されます。

ちなみに、イメージがダウンロードされていない場合、createコマンド実行時にDockderHubからイメージのダウンロードも自動的に行ってくれるので、手順①は省略することが出来ます。

上記のコマンドで使用しているオプションは以下の通りです。

オプション解説
–nameコンテナに名前を付けるオプションです。
今回の場合は「mysql」という名前を付けています。
-e環境変数を設定するオプションです。
環境変数に「MYSQL_ROOT_PASSWORD」を設定することで、MySQLのrootユーザーパスワードが設定されます。
今回の場合、rootユーザーのパスワードを「root」に設定しています。
-pポートフォワーディングを設定するオプションです。
ローカル環境の33306番ポートへのアクセスが、コンテナの3306番ポートにフォワードされます。

手順③ コンテナ起動

手順②で作成したコンテナは停止状態なので、以下のコマンドで起動します。

docker start mysql

startコマンドは、指定したコンテナを起動するコマンドです。

「mysql」というコンテナ名を指定していますので、手順②で作成したコンテナが起動します。

以下のコマンドを実行してコンテナが起動していることを確認しましょう。

docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS              PORTS                                                    NAMES
f1f312e76022   mysql     "docker-entrypoint.s…"   15 hours ago   Up About a minute   33060/tcp, 0.0.0.0:33306->3306/tcp, :::33306->3306/tcp   mysql

STATUS部分がUpとなっていて、コンテナが起動していることが分かります。

ちなみに、今回はコンテナ作成→起動を別コマンドで行っていますが、コンテナ作成時に自動で起動するrunコマンドもあります。

その場合、以下のコマンドを実行します。

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -p 33306:3306 mysql

基本的にcreateコマンドとオプションは同じですが、runコマンドの場合は-dオプションが指定できます。

-dオプションはバックグラウンドで実行するオプションです。

runコマンドは、コンテナ作成と同時に起動まで行いますので、-dオプションを指定することでコンテナがバックグラウンドで起動します。

※-dオプションを指定しない場合、ターミナル上に起動時の状況が表示されます。

接続確認

コンテナを起動したら、SQLクライアントを使用してMySQLに接続してみましょう。

今回は、フリーツールのA5:SQLを使用して確認します。

A5:SQLを起動後、以下を指定して接続します。

ホスト名localhost
ユーザーIDroot
パスワードroot
データベースmysql
ポート番号33306

接続が成功したら無事にMySQLが起動できています。

コンテナ後片付け

コンテナ停止

MySQLのコンテナを停止する場合は、以下のコマンドを実行します。

docker stop mysql

stopコマンドは、指定したコンテナを停止するコマンドです。

コンテナ名の「mysql」を指定してコンテナを停止します。

docker psコマンドを実行して停止したことを確認してみましょう。

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

何も表示されていなければコンテナがちゃんと停止しています。

コンテナ削除

コンテナが不要となった場合は、以下のコマンドで削除できます。

docker rm mysql

rmコマンドは、指定したコンテナを削除するコマンドです。

削除対象となるコンテナ名「mysql」を指定してコンテナを削除します。

イメージ削除

ダウンロードしたMySQLイメージも不要となった場合は、以下のコマンドで削除できます。

docker rmi mysql

rmiコマンドは、指定したイメージを削除するコマンドです。

手順①でタグを指定してイメージを取得した場合は、「mysql:tag」のように指定する必要があります。

これでイメージの取得・削除、コンテナの作成・起動・停止・削除など一通りの作業が出来ると思います。

コメント