Tôi dường như không thể có được dữ liệu MySQL để duy trì nếu tôi chạy $ docker-compose down
với những điều sau đây.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"
Sự hiểu biết của tôi là trong data
container của tôi sử dụng volumes: - /var/lib/mysql
ánh xạ tới thư mục máy cục bộ của tôi, nơi mysql lưu trữ dữ liệu vào container và do ánh xạ này, dữ liệu sẽ tồn tại ngay cả khi các container bị phá hủy. Và mysql
container chỉ là một giao diện máy khách vào db và có thể thấy thư mục cục bộ vìvolumes_from: - data
Đã thử câu trả lời này và nó không hoạt động. Docker-Compose Rắc rối dữ liệu liên tục
BIÊN TẬP
Thay đổi của tôi .yml
như hình dưới đây và tạo ra một thư mục ./data
nhưng bây giờ khi tôi chạy docker-compose up --build
các mysql
đầu sẽ không chứa ném lỗi nói
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.