我希望 mysql 将数据读/写到我的 RBD 映像中。我使用 rbd-docker-plugin 从https://hub.docker.com/_/mysql/将 RBD 挂载到 docker pull
首先我尝试
docker run -it --volume-driver=rbd --volume foo:/mnt/foo ceph/base bash
我在 docker 中触摸 /mnt/foo 内的“aa”文件,然后我停止 docker,当我挂载foo
到另一个 docker 时,“aa”文件仍然存在
然后我将我的代码添加到这个Docker 文件中
RUN mkdir -p /mnt/foo/mysql
RUN sed -i -e 's/\/var\/lib\/mysql/\/mnt\/foo\/mysql/g' /etc/mysql/my.cnf
VOLUME /mnt/foo/mysql
并从这个新的 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' 不存在