Je n'arrive pas à faire en sorte que les données MySQL persistent si je cours $ docker-compose down
avec ce qui suit.yml
version: '2'
services:
# other services
data:
container_name: flask_data
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
mysql:
container_name: flask_mysql
restart: always
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
MYSQL_USER: 'test'
MYSQL_PASS: 'pass'
volumes_from:
- data
ports:
- "3306:3306"
Ma compréhension est que dans mon data
conteneur, l'utilisation de volumes: - /var/lib/mysql
mappe vers mon répertoire de machines locales où mysql stocke les données dans le conteneur et à cause de ce mappage, les données devraient persister même si les conteneurs sont détruits. Et le mysql
conteneur n'est qu'une interface client dans la base de données et peut voir le répertoire local en raison devolumes_from: - data
J'ai tenté cette réponse et cela n'a pas fonctionné. Problème de données persistantes Docker-Compose
ÉDITER
J'ai changé mon .yml
comme indiqué ci-dessous et créé un répertoire, ./data
mais maintenant, lorsque j'exécute docker-compose up --build
le mysql
conteneur, ne démarre pas, une erreur en disant
data:
container_name: flask_data
image: mysql:latest
volumes:
- ./data:/var/lib/mysql
command: "true"
mysql:
container_name: flask_mysql
restart: always
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
MYSQL_USER: 'test'
MYSQL_PASS: 'pass'
volumes_from:
- data
ports:
- "3306:3306"
flask_mysql | mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)
flask_mysql | 2016-08-26T22:29:21.182144Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
flask_mysql | 2016-08-26T22:29:21.185392Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.