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
因此,我有两个问题:
- 如何正确地为多个MySQL容器实现仅数据容器?
- 如何使用Master-Master复制和负载均衡器将多个MySQL容器的仅数据容器实现为一个集群?
据我所知,MySQL守护进程会要求对数据文件进行独占locking。 这个锁将阻止第二个实例的旋转,这可能会解释你所看到的错误。
也许尝试做一个主奴隶钻井平台,你有两个不同的卷,但奴隶(db2)绑定到db1?