Ich kann nicht scheinen, dass MySQL-Daten bestehen bleiben, wenn ich $ docker-compose downFolgendes ausführe.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"
Ich verstehe, dass in meinem dataContainer mithilfe volumes: - /var/lib/mysqlvon Zuordnungen die Zuordnung zu meinem lokalen Maschinenverzeichnis erfolgt, in dem MySQL Daten im Container speichert. Aufgrund dieser Zuordnung sollten die Daten auch dann bestehen bleiben, wenn die Container zerstört werden. Und der mysqlContainer ist nur eine Client-Schnittstelle in die Datenbank und kann das lokale Verzeichnis wegen sehenvolumes_from: - data
Ich habe diese Antwort versucht und es hat nicht funktioniert. Docker-Compose Persistent Data Trouble
BEARBEITEN
Ich habe mein .ymlwie unten gezeigt geändert und ein Verzeichnis erstellt, ./dataaber jetzt, wenn ich docker-compose up --buildden mysqlContainer starte, wird kein Fehler ausgelöst
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.