dockerコンテナで複数のMySQLを起動しようとすると、
何かと重複するので考慮してみた。
Xプロトコルの存在を知った。
重複が気になった部分
- image(イメージ名)
- イメージができた時点で同じ名前になってしまう
- 異なるプロジェクトで使うDBだと設定が異なるので別イメージにする必要あり
- docker-composeを入れているディレクトリ名が同じだと同じイメージ名になってしまうので設定でイメージ名を指定する
- ports(ポート番号)
- 通常使うポート番号3306以外にもXプロトコルのポート番号33060も重複する
- hostname(ホスト名)
- ホスト名はもちろん重複すると困るので分ける
docker-composeの例
1つ目
version: '3.1'
services:
db:
build: .
image: mysql-kuma
container_name: mysql-kuma
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: kumadb
MYSQL_USER: develop
MYSQL_PASSWORD: develop
TZ: Asia/Tokyo
ports:
- 13306:3306
- 13060:33060
hostname: kuma
2つ目
version: '3.1'
services:
db:
build: .
image: mysql-panda
container_name: mysql-panda
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: pandadb
MYSQL_USER: develop
MYSQL_PASSWORD: develop
TZ: Asia/Tokyo
ports:
- 23306:3306
- 23060:33060
hostname: kuma
参考