我想拥有一个带有一些基本数据集的mysql数据库。
我使用这个https://index.docker.io/u/brice/mysql/ Dockerfile创建了mysql docker镜像,但删除了VOLUME ["/var/lib/mysql", "/var/log/mysql"]
行,所以Dockerfile看起来像:
FROM ubuntu:12.10
MAINTAINER Brandon Rice <brice84@gmail.com>
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -s /bin/true /sbin/initctl
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get -y install mysql-server
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
RUN /usr/bin/mysqld_safe & \
sleep 10s && \
mysql < create_my_db.sql && \
mysql -e "GRANT ALL ON *.* to 'root'@'%'; FLUSH PRIVILEGES"
EXPOSE 3306
CMD ["mysqld_safe"]
之后我构建了如下图像:
docker build -t my_db_mysql .
我附加数据时一切正常,但是当我想删除数据库时,例如:
FROM my_db_mysql
RUN /usr/bin/mysqld_safe & \
sleep 10s && \
mysql -e "DROP DATABASE my_db;"
EXPOSE 3306
CMD ["mysqld_safe"]
我获得了下一个错误:
ERROR 6 (HY000) at line 1: Error on delete of './my_db//db.opt' (Errcode: 1)
不仅在我想要构建图像时出现,而且即使我执行了mysql -u user -p -e "DROP DATABASE my_db;"
怎么解决这个?
感谢
更新:我还尝试使用不同的文件系统运行docker,例如-s vfs或-s devicemapper,但没有任何改变。
当我使用VOLUME ["/var/lib/mysql", "/var/log/mysql"]
构建图像时 - 一切正常,但我无法进行此更改
更新:似乎我解决了这个问题。问题出现在使用ubuntu 12.04的主机上。当我将ubuntu更新为13.10时,问题消失了。非常感谢!