Docker MySQL
Directory Structure
.
├── .env
├── docker-compose.yml
├── mysql
│ ├── Dockerfile
│ └── my.cnf
└── README.md.env
MYSQL_DATABASE=***
MYSQL_USER=***
MYSQL_PASSWORD=***
MYSQL_ROOT_PASSWORD=***
MYSQL_PORT=***DockerFile
dockerfile
FROM --platform=linux/x86_64 mysql:8.0-debian
COPY my.cnf /etc/mysql/conf.d/my.cnf
RUN apt-get update && apt-get install -y locales \
&& sed -i -e 's/# \(ja_JP.UTF-8\)/\1/' /etc/locale.gen \
&& locale-gen \
&& update-locale LANG=ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8
ENV TZ Asia/Tokyo
ENV LANG=ja_JP.UTF-8
EXPOSE 3306apt-get updateパッケージリストを最新の状態にする。apt-get install -y localesパッケージのインストール。sed -i -e 's/# \(ja_JP.UTF-8\)/\1/' /etc/locale.gen \コマンドで行を有効化。local-genローケルを生成update-locale LANG=ja_JP.UTF-8システム全体のデフォルトロケール。
# C.UTF-8 UTF-8
# aa_DJ ISO-8859-1
# aa_DJ.UTF-8 UTF-8
# aa_ER UTF-8
# aa_ER@saaho UTF-8
# aa_ET UTF-8
# af_ZA ISO-8859-1
# af_ZA.UTF-8 UTF-8
...
ja_JP.UTF-8 UTF-8タイムゾーンの設定。
ENV LC_ALL ja_JP.UTF-8
ENV TZ Asia/Tokyo
ENV LANG=ja_JP.UTF-8my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4データベースファイルと設定ファイル(APT系)
| 項目 | ファイルまたはディレクトリ |
|---|---|
| データベースディレクトリ | var/lib/mysql/ |
| 設定ファイル | /etc/mysql/my.cnf |
| 追加設定ファイル | /etc/mysql/conf.d/mysql.cnf |
docker-compose.yml
yml
version: '3.8'
services:
mysql:
build:
context: ./mysql/
dockerfile: Dockerfile
image: docker-mysql
volumes:
- mysql_data:/var/lib/mysql/
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
ports:
- '${MYSQL_PORT_HOST}:3306'
volumes:
mysql_data:データベースと設定ファイル
起動する。
sh
docker compose up -dコンテナに入る。
sh
docker compose exec mysql /bin/bashmysqlに接続
sh
mysql -u *** -p***mysql>mysqlコマンドクライアントの終了
exit
quit
\q