PR

Docker に MySQL をインストールする

1. はじめに

仮想環境を用意し、その中に MySQL をインストールすることは、環境構築の手間がかかります。
Docker を使えば、簡単に MySQL をインストールすることができます。
Docker に MySQL をインストールする方法を記載します。

2. ディレクトリとファイルの構成

以下の構成でディレクトリとファイルを作成します。

mysql
├── conf
│   ├── my.cnf
├── data
│   ├── db.dump
│   ├── cmd.sh
├── logs
├── .env
├── docker-compose.yml

3. .env の設定

以下の内容で .env ファイルを作成します。

MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=sample
MYSQL_USER=user
MYSQL_PASSWORD=password
MYSQL_PORT=3306
TZ=Asia/Tokyo

4. my.cnf の設定

以下の内容で my.cnf ファイルを作成します。

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4

5. docker-compose.yml の設定

以下の内容で docker-compose.yml ファイルを作成します。

services:
  db:
    image: mysql:8.0
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      TZ: ${TZ}
    ports:
      - "${MYSQL_PORT}:3306"
    volumes:
      - db_data:/var/lib/mysql
      - ./logs:/var/log/mysql
      - ./data:/data
      - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf

volumes:
    db_data:

6. cmd.sh の設定

以下の内容で cmd.sh ファイルを作成します。
内容としては、db.dump を DB にインポートする処理を記載します。

#!/bin/bash

mysql -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /data/db.dump

7. docker コンテナの起動

以下のコマンドで docker コンテナを起動します。
ついでに、cmd.sh を実行して、db.dump を DB にインポートします。

# docker コンテナの起動
docker-compose up -d
# コンテナに入る
docker-compose exec db bash
# cmd.sh を実行し、db.dump を DB にインポート
/data/cmd.sh

7. まとめ

以上で、Docker に MySQL をインストールする方法を記載しました。
Docker を使えば、簡単に MySQL をインストールすることができます。
サクッとテスト用の DB を作成したい場合などに、便利です。

今回の記事は、Github Copilot が8割くらい書いてくれました。

A. 参考サイト

【Docker】MySQLを簡単に構築
Dockerを使ってMySQLの環境構築【WSL2】

B. 参考書籍

コメント