Ich kann nicht scheinen, dass MySQL-Daten bestehen bleiben, wenn ich $ docker-compose down
Folgendes 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 data
Container mithilfe volumes: - /var/lib/mysql
von 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 mysql
Container 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 .yml
wie unten gezeigt geändert und ein Verzeichnis erstellt, ./data
aber jetzt, wenn ich docker-compose up --build
den mysql
Container 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.