【Docker Hub】公式イメージからMySQL環境を構築

こんにちは、おくやんです。

このブログでは、開発に役立つノウハウを実践的なコード例と共に紹介しています。

Docker + MySQLを利用したシステムを構築したい!
だけど、方法がわからない。。。

今回は、このようなお悩みを解決します。

本記事の内容

Docker Hubの公式イメージとは
MySQLのDockerイメージを利用した環境構築手順を解説

今回はDocker上でMySQL環境を構築する手順についてまとめました。

MySQLは世界で最も利用されているオープンソースのデータベース管理システムです。開発現場で利用する機会も非常に多いと思います。

Docker Hubに公開されているイメージを利用すると非常に簡単に環境構築ができますので、本記事を通じて構築方法をぜひ覚えてください。

Docker Hubの公式イメージとは

Docker Hubの公式イメージとは画像

今回はDocker Hub上にあるMySQLの公式イメージを利用して、環境構築を行っていきます。

Dockerを利用し始めてすぐの人は、「Docker Hubとは?」「公式イメージとは?」と思う方もいるかもしれません。まずはDocker Hubについて解説していきます。

Docker Hubとは

Docker HubとはDockerイメージのリポジトリのようなサービスで、公開されているイメージを自由に利用できることができます。

サイトへは下記URLからアクセスできます。

Docker Hub

公開されているイメージを利用する以外にも、ユーザが作成したイメージをアップロードして公開・共有することもできます。

公式イメージとは

公式イメージとは公開されているDockerイメージの中で、Docker社が厳選したイメージのことです。

下記のような条件をもとに選定されます。

公式イメージの条件例

・広く利用されているOS(Ubuntu, CentOSなど)を利用してる
・広く利用されているプログラミング言語、DB、サービスを利用している
・ドキュメントが充実している
・セキュリティ対策などアップデートが定期的に実施されている

公式イメージにはサイト上で「DOCKER OFFICIAL IMAGE」というタグが付いているので見分けることができます。

DOCKER OFFICIAL IMAGEタグ画像
DOCKER OFFICIAL IMAGEタグ

それでは、実際に公式イメージを利用した環境構築を行っていきましょう。

MySQLのDockerイメージを利用した環境構築手順を解説

MySQLのDockerイメージを利用した環境構築手順を解説画像

Dockerを利用してMySQLの環境構築を行っていきます。

手順は下記となります。

MySQLの環境構築手順

1. 利用するイメージの決定
2. docker-compose.ymlの作成
3. 環境変数設定ファイルの作成
4. Dockerを立ち上げ

なお、環境構築は下記システム環境で行っています。

 システム環境

OS Windows 10
Docker for Windows 4.19.0
Dokcer 23.0.5
Docker Compose v2.17.3

まずは利用するDockerイメージを選定していきます。

1. 利用するイメージの決定

初めに利用するイメージを決定していきましょう。

MySQLの公式イメージは下記から確認することができます。

MySQL公式イメージ画像
MySQL公式イメージ

1つアプリケーションに対してバージョン別、OS別など複数のイメージが提供されています。

Tags」から提供されているイメージの内容を確認し、どれを利用するか決めましょう。

今回は8.0.33-debian(MySQL: 8.0.33、OS: debian)を利用して環境構築を行っていきます。

2. docker-compose.ymlの作成

docker-compose.ymlを作成します。

下記の内容でファイルを作成してください。

 docker-compose.yml

version: '3.8'
services:
  db:
    image: mysql:8.0.33-debian
    environment:
      - TZ=Asia/Tokyo
    volumes:
      - db-data:/var/lib/mysql
    ports:
      - 13306:3306
    env_file:
      - .env
    cap_add:
      - SYS_NICE

volumes:
  db-data:
    driver: local

docker-compose.ymlの書き方に関しては下記で詳しく解説していますので、ご確認ください。

>> 【初心者向け】docker-compose.ymlの書き方を調べてみた

ポイントを解説します。

公式イメージの指定

image: mysql:8.0.33-debian

利用するMySQLの公式イメージを指定しています。

別のバージョンや別のOSを利用したイメージもあるので、Docker Hubを確認しつつ、用途に適したものを選択してください。

名前付きボリュームの設定

  db:
    ・・・
    volumes:
      - db-data:/var/lib/mysql
    ・・・
volumes:
  db-data:
    driver: local

データを永続化させるために、コンテナ上の/var/lib/mysqlに名前付きボリュームを割り当てています。

今回は名前付きボリュームをdb-dataという名前で作成してます。

環境変数設定ファイルの設定

env_file:
  - .env

公式イメージを利用するために必要な環境変数を、外部ファイルから読み込む設定としています。

docker-compose.ymlと同階層にある「.env」から定義を読み込みます。

ケイパビリティ「CAP_SYS_NICE」の追加

cap_add:
  - SYS_NICE

Docker起動時、ターミナルに「mbind: Operation not permitted」とエラーが出力される場合は定義します。

詳細は下記の記事を参照ください。

>> 【Docker+MySQL】「mbind: Operation not permitted」の対応

次に環境変数設定ファイルを作りましょう。

3. 環境変数設定ファイルの作成

公式イメージの起動に必要な環境変数を定義したファイルを作ります。

以下4つの環境変数を定義してください。

.env

MYSQL_ROOT_PASSWORD=root_pw
MYSQL_DATABASE=app_development
MYSQL_USER=okuyan
MYSQL_PASSWORD=okuyan_pw

設定値は必要に応じてを変更してください。各設定の内容は下記となります。

設定する環境変数

MYSQL_ROOT_PASSWORD rootユーザのパスワード
MYSQL_DATABASE データベース名
MYSQL_USER ユーザ名
MYSQL_PASSWORD ユーザのパスワード

これで準備は完了となります。

4. Dockerを立ち上げ

Dockerを立ち上げてみましょう。

ターミナルを起動し、下記コマンドを実行してください。

docker-compose up -d

起動が完了したら、SQLクライアントツールを利用し、DBにアクセスできるか確かめてみましょう。

接続確認画像
接続確認

docker-compose.ymlや環境変数で設定した内容で、DBが作成されていることが確認できました。

終了する際は下記コマンドを実行してください。

docker-compose down

以上で、環境構築は完了です。

まとめ:Docker上でMySQL環境を構築しよう

まとめDocker上でMySQL環境を構築しよう画像

本記事ではDocker上でMySQL環境を構築する手順について解説しました。

環境構築は下記4つの手順となります。

 MySQLの環境構築手順

1. 利用するイメージの決定
2. docker-compose.ymlの作成
3. 環境変数設定ファイルの作成
4. Dockerを立ち上げ

Docker Hubを利用することで、手間をかけることなく環境構築が行えます。

MySQLに限らず利用する機会は非常に多いと思いますので、ぜひ使い方を覚えておきましょう。

最後まで読んでいただき、ありがとうございます。


最新情報をチェックしよう!

Dockerの最新記事8件