如何将RBD映像(ceph)装载到mysql docker的默认数据目录

如何将RBD映像(ceph)装载到mysql docker的默认数据目录,mysql,docker,ceph,Mysql,Docker,Ceph,我想要mysql读/写数据到我的RBD图像。我使用rbd docker插件将rbd安装到docker pull中 首先我试着 docker run-it--volume driver=rbd--volume foo:/mnt/foo ceph/base bash 我在docker中触摸/mnt/foo中的“aa”文件,然后停止docker,当我将foo装入另一个docker时,“aa”文件仍然存在 然后我把我的代码添加到这个 并从这个新Dockerfile中构建、运行docker docker

我想要mysql读/写数据到我的RBD图像。我使用rbd docker插件将rbd安装到docker pull中

首先我试着

docker run-it--volume driver=rbd--volume foo:/mnt/foo ceph/base bash

我在docker中触摸/mnt/foo中的“aa”文件,然后停止docker,当我将
foo
装入另一个docker时,“aa”文件仍然存在


然后我把我的代码添加到这个

并从这个新Dockerfile中构建、运行docker

docker run -it --volume-driver=rbd --volume storage2/foo:/mnt/foo -e MYSQL_ROOT_PASSWORD=password [image_id]
当我执行容器时,我可以使用mysql,我在/mnt/foo/mysql中看到mysql(和“aa”文件)的数据,但当我停止docker并将foo装载到另一个docker中时,我看不到关于mysql的任何信息(但我仍然看到“aa”文件)


最后我试了一下

docker run --name some-mysql --volume-driver=rbd --volume foo:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql
但这是一个错误

[错误]致命错误:无法打开和锁定特权表:表 “mysql.user”不存在


错误消息表示没有mysql文件可供mysql读取

问题是您在安装mysql之后安装了分区,所以分区将是空的

解决方案:使用--initialize或--initialize unsecure启动mysql

docker run --name some-mysql --volume-driver=rbd --volume foo:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql