У меня есть это приложение, пытающееся организовать с помощью docker + fig, который отлично работает в первый день попытки. Он использует контейнер данных, в котором я хочу сохранить файлы базы данных и контейнеры redis + mysql, используемые приложением.docker mysql постоянное хранилище
После загрузки контейнера mysql ищет файлы данных /var/lib/mysql
и, если их не обнаружено, он создает по умолчанию sb, который затем я могу заполнить, а файлы создаются и сохраняются в моем томе данных.
Пока я изучаю фигу, мне нужно было сделать fig rm --force mysql
, который удалил мой контейнер mysql. Я сделал это без страха, зная, что мои данные безопасны в контейнере данных. Запуск ls
на моем хосте показывает, что файлы mysql остаются неповрежденными.
Проблема возникает, когда я снова запускаю fig up
, который снова создает контейнер mysql. Несмотря на то, что у меня одинаковые тома, и мои старые файлы mysql все еще присутствуют, этот новый контейнер создает новую базу данных, как если бы общий том был пустым. Это происходит только в том случае, если I rm
контейнер, а не если я закрою рис и верну его.
Вот мой файл фига, если это поможет:
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 не будет использовать существующие файлы.?
Файлы существуют, когда загружается контейнер mysql, поскольку докеры монтируют том, в котором есть необходимые файлы. Я даже попытался убить все контейнеры, а затем снова выстрелить 'fig up', и он находит файлы. Только когда я использую контейнер mysql, он это делает. Я бы предположил ошибку разрешения, но я не могу найти ошибку, связанную с этим ... –