🐬
Dockerを使ってMySQLの環境を構築してみました
はじめに
こんにちは!ご訪問いただきありがとうございます!
Dockerを使った環境構築シリーズ第3弾です!
今回は、データベースへの理解を深めるため、Dockerを使ってMySQL 8.0
の環境を構築しました。
本記事では、具体的な手順を追って、どのように環境を構築したのかを紹介します。
Dockerを使っての環境構築に関心をお持ちで、情報が足りず困っているという方のヒントになれば嬉しいです。
作業用ディレクトリの作成
まずは、任意の階層に作業用ディレクトリを作成します。
bash
mkdir mysql-study
ls
cd mysql-study
- mkdir mysql-study
作業用ディレクトリ(mysql-study)を作成 - ls
ファイルが作成されているかディレクトリの中身を確認 - cd mysql-study
作業用ディレクトリ(mysql-study)に移動
必要なファイルの準備
環境構築にあたり必要なファイルを準備します。
bash
touch Dockerfile docker-compose.yml .env
ls
code .
- touch Dockerfile docker-compose.yml .env
各ファイルをまとめて作成 - ls
ファイルが作成されているかディレクトリの中身を確認 - code .
VSCodeを開く(設定していない方はいつも通りの手順で開いてください)
.envの作成
環境変数を定義するためのファイルを作成します。
.env
MYSQL_ROOT_PASSWORD=mysql
MYSQL_DATABASE=mysql_study
MYSQL_USER=mysql
MYSQL_PASSWORD=mysql
Dockerfileの作成
Dockerfileを作成します。
Dockerfile
FROM mysql:8.0-debian
RUN apt-get update && \
apt-get install -y locales
RUN locale-gen ja_JP.UTF-8
RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG=ja_JP.UTF-8
ENV TZ=Asia/Tokyo
- FROM mysql:8.0-debian
Dockerイメージとバージョンを指定 - apt-get update
パッケージリストを更新しより新しいバージョンのパッケージをインストールするための記述 - apt-get install -y locales
日本語を扱うために必要なパッケージをインストール - RUN locale-gen ja_JP.UTF-8
日本語を扱うための記述 - RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
日本語を扱うための記述 - ENV LANG=ja_JP.UTF-8
環境変数LANGを設定するための記述 - ENV TZ=Asia/Tokyo
環境変数TZ(タイムゾーン)を設定するための記述
docker-compose.ymlの作成
docker-compose.ymlを作成します。
docker-compose.yml
version: '3.7'
services:
db:
build: .
platform: linux/amd64
ports:
- 3306:3306
volumes:
- ./db/data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
- version: '3.7'
Docker Composeのバージョンを指定 - services:
セクション名 - db:
サービスの名前を設定 - build: .
ビルドするDockerfileのPathを指定 - platform: linux/amd64
Apple silicon搭載のMacで動作させるための記述 - ports:
- 3306:3306
ホストマシンのポート3306をコンテナのポート3306にマッピングための記述 - volumes:
- ./db/data:/var/lib/mysql
データの永続化のための記述 - environment:
- rootのパスワードを定義
- データベースを定義
- userを定義
- userのパスワードを定義
コンテナの構築・起動
ターミナルに戻り、docker-compose.ymlファイルがあるディレクトリで下記のコマンドを入力し、コンテナをバックグラウンドで構築・起動します。(最初は結構時間がかかるかもしれません!)
bash
docker compose up -d
コンテナに入る
コンテナの構築・起動が完了したら、下記のコマンドを入力しコンテナに入ります。
bash
docker compose exec db bash
構築した環境を確認
.envに定義したパスワードを使用してMySQLにログインできたら環境構築は完了です。
bash
mysql -u root -p
コンテナの停止・削除・破棄
MySQLとコンテナから出て、削除・破棄をします。
bash
exit
exit
docker compose down
- exit
MySQLから出る - exit
コンテナから出る - docker compose down
コンテナを停止・削除・破棄する
終わりに...
ここまでご覧いただき、ありがとうございました。
Dockerを使用することでローカルマシーンをクリーンに保ちつつ、最適なMySQLの環境を手間なく構築することができます。
ぜひ、Dockerでの環境構築に困った時は、またこの記事まで戻ってきてください。
Discussion