一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • Docker に MySQL を用意する手順

1. ディレクトリ構成の決定

以下のようなディレクトリワークスペースを作成します。

/my-docker-mysql
  ├── Dockerfile
  ├── config
  │   └── my.cnf
  └── data
  • Dockerfile : Dockerイメージを構成するための指示書
  • config/my.cnf : MySQLの設定ファイル
  • data : データボリューム用のディレクトリ(Databaseデータの永続化)

2. my.cnf の作成

my.cnfファイルを以下のように作成します。

[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8

3. Dockerfile の作成

下記の内容のDockerfileを作成します。

dockerfile
FROM mysql:8.0

ENV MYSQL_ROOT_PASSWORD password
ENV MYSQL_DATABASE test
ENV MYSQL_USER user
ENV MYSQL_PASSWORD password

COPY ./config/my.cnf /etc/mysql/conf.d/my.cnf

FROM mysql:8.0 はMySQL 8.0の公式イメージを使用することを設定しています。 COPY命令は、my.cnfをmysqlの設定ファイルとして、イメージ内の/etc/mysql/conf.d/にコピーします。

4. build

作成したDockerfileからDockerイメージをビルドします。次のコマンドを実行します。

bash
docker build -t my-mysql:latest .

5. run

ビルドしたイメージからDockerコンテナを実行します。下記の例ではMySQLのrootパスワードを password と設定しています。

bash
docker run --name my-mysql-instance -p 3306:3306 -v "%cd%/data":/var/lib/mysql -d my-mysql:latest:/var/lib/mysql -d my-mysql:latest

6. dockerコンテナログイン & mysqlログイン

先ほど実行したコンテナに入り、MySQLにログインします。

bash
# Dockerコンテナへログイン
docker exec -it my-mysql-instance bash

# MySQLへログイン
mysql -uuser -p

MySQLへのログインを求められるときに、先ほど設定したパスワード(この例ではpassword)を入力します。

The following two tabs change content below.

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア