goroumaru41gou

遊んでいる中でインプットした内容をアウトプットする場

docker-comoposeによる複数DB起動について(複数コンテナ編)

2つコンテナを起動して、2つデータベースを作成する方法。

ひとつのyaml、ひとつのコンテナで、database Nameを変えて起動する簡単な方法があれば、いいんだけど・・・

取り扱うもの

docker-composeで複数DB起動

作成方法

version: "3.7"

services:
  mysql:
    container_name: mysql
    image: mysql:5.7.26
    ports:
      - 3306:3306
    env_file:
      - ./.env 
    volumes:
      - mysql-volume:/var/lib/mysql
    networks:
      - overlay
  mysql-test:
    container_name: mysql-test
    image: mysql:5.7.26
    ports:
      - 3307:3306 # ホスト側を3307とする。コンテナ側は3306のまま。
    env_file:
      - ./.envtest # envファイルを変える。DB名称とか変更するため。
    volumes:
      - mysql-test-volume:/var/lib/mysql
    networks:
      - overlay

volumes:
  mysql-volume:
  mysql-test-volume:

networks:
  overlay:
MYSQL_HOST=localhost
MYSQL_ROOT_PASSWORD=mysql
MYSQL_USER=root             #localuser
MYSQL_PASSWORD=mysql        #localpass
MYSQL_DATABASE=local
MYSQL_HOST=localhost
MYSQL_ROOT_PASSWORD=test
MYSQL_USER=root             #localuser
MYSQL_PASSWORD=test         #localpass
MYSQL_DATABASE=test

MySQL Workbenchで接続確認

MySQLのworkbenchで接続設定をする。 f:id:goroumaru41gou:20200727203901p:plain

2つとも設定する。 f:id:goroumaru41gou:20200727204013p:plain

接続できれば、この画面となる。 f:id:goroumaru41gou:20200727204049p:plain

参考