我有这个应用程序尝试使用 docker + fig 进行编排,这对于第一天的尝试非常有用。它使用一个数据容器,我想在其中保存我的数据库文件和应用程序使用的 redis + mysql 容器。
启动后,mysql 容器会在内部/var/lib/mysql
查找数据文件,如果没有找到,它会创建默认的 sb,然后我可以填充该文件,并创建文件并将其保存在我的数据卷中。
当我学习无花果时,我必须做一个fig rm --force mysql
删除我的 mysql 容器的操作。我这样做并不担心知道我的数据在数据容器上是安全的。在我的主机上运行 als
显示 mysql 文件仍然完好无损。
当我再次运行fig up
它再次创建 mysql 容器时会出现问题。即使我共享了相同的卷并且我的旧 mysql 文件仍然存在,这个新容器也会创建一个新数据库,就好像共享的卷是空的一样。这仅在我rm
使用容器时发生,而不是在我关闭 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 容器不会使用现有文件。?