我希望mysql读/写数据到我的RBD图像。我使用rbd-docker-plugin将RBD从https://hub.docker.com/_/mysql/
挂载到docker pull中首先我尝试
docker run -it --volume-driver=rbd --volume foo:/mnt/foo ceph/base bash
然后我在docker中触摸/ mnt / foo中的“aa”文件然后我停止了docker,当我将foo
挂载到另一个docker时,“aa”文件仍然存在
然后我将我的代码添加到此Docker file
中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
但是错误
[ERROR]致命错误:无法打开和锁定权限表:表 'mysql.user'不存在
答案 0 :(得分:2)
错误消息显示mysql没有要读取的mysql文件。
问题是你在安装mysql之后挂载分区,所以分区将是空的。
解决方案:使用--initialize或--initialize-insecure
启动mysqlhttp://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html