Docker多个具有持久性的MySQL容器

我正在尝试使用Docker Compose来设置两个MySQL容器和一个数据专用容器来保存MySQL数据。

这里是docker-compose.yml:

db1: image: mysql volumes_from: - data environment: - MYSQL_ROOT_PASSWORD=password db2: image: mysql volumes_from: - data environment: - MYSQL_ROOT_PASSWORD=password data: image: mysql volumes: - /var/lib/mysql entrypoint: /bin/echo 

但是,这两个mysql守护进程都有冲突,因为它们需要一个单独的数据目录:

 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files. [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11 

因此,我有两个问题:

  1. 如何正确地为多个MySQL容器实现仅数据容器?
  2. 如何使用Master-Master复制和负载均衡器将多个MySQL容器的仅数据容器实现为一个集群?

据我所知,MySQL守护进程会要求对数据文件进行独占locking。 这个锁将阻止第二个实例的旋转,这可能会解释你所看到的错误。

也许尝试做一个主奴隶钻井平台,你有两个不同的卷,但奴隶(db2)绑定到db1?