我有这个应用程序试图协调使用docker +无花果,这对于第一天的尝试很好。它使用一个数据容器和一个redis + mysql容器来保存我的数据库文件。
启动后,mysql容器在/var/lib/mysql中查找数据文件,如果没有找到,它会创建默认的sb,然后我可以填充该sb,然后创建文件并将其持久存储在我的数据卷中。
当我学习fig时,我不得不做一个fig rm --force mysql,它删除了我的mysql容器。我知道我的数据在数据容器上是安全的,所以我做到了这一点。在我的主机上运行ls会显示mysql文件仍然完好无损。
当我再次运行fig up时出现问题,这将再次创建mysql容器。即使我共享了相同的卷,并且我的旧mysql文件仍然存在,这个新容器也会创建一个新数据库,就好像共享的卷是空的一样。这只发生在我rm容器的时候,而不是当我关闭fig并重新启动它的时候。
下面是我的fig文件,如果它有用的话:
data: image: ubuntu:12.04 volumes: - /data/mysql:/var/lib/mysql redis: image: redis:latest mysql: image: mysql:latest ports: - 3306 environment: MYSQL_DATABASE: ***** MYSQL_ROOT_PASSWORD: ***** volumes_from: - data web: build: . dns: 8.8.8.8 command: python manage.py runserver 0.0.0.0:8000 environment: - DEBUG=True - PYTHONUNBUFFERED=1 volumes: - .:/code ports: - "8000:8000" links: - data - mysql - redis
你知道为什么新的mysql容器不使用现有的文件吗?
发布于 2014-12-24 16:29:08
大约3周以来,我一直在为我的MySQL实例运行无状态数据容器。这一直运行得很好,没有任何问题。
如果容器启动时 /var/lib/mysql中的content 不存在,则脚本将安装所需的数据库文件。该脚本检查初始数据库文件是否存在,而不仅仅是/var/lib/mysql路径。
if [[ ! -f $VOLUME_HOME/ibdata1 ]]; then
echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME"
echo "=> Installing MySQL ..."
else
echo "=> Using an existing volume of MySQL"
fi下面是我正在继续增强的一个直接link to a MySQL repo
发布于 2015-01-06 21:40:01
这似乎是一个错误,请参阅此相关问题,该问题具有指向相关图/docker问题的链接:https://stackoverflow.com/a/27562669/204706
显然,这种情况在docker 1.4.1中得到了改善,所以如果您还没有使用该版本,那么您应该尝试使用该版本。
https://stackoverflow.com/questions/27633412
复制相似问题