Tôi tin rằng cách chính xác để thực hiện việc này là gắn ổ đĩa ngoài vào hệ thống Máy chủ của bạn, sau đó ánh xạ ổ đĩa vào vùng chứa khi khởi động.
Tôi sẽ cung cấp một ví dụ cơ bản với Vùng chứa NextCloud.
Vì vậy, hãy gắn ổ đĩa ngoài của bạn một cách bình thường trên hệ thống Máy chủ của bạn - giả sử bạn gắn nó vào /mnt/dữ liệu của tôi
.
Tiếp theo, bạn muốn tạo một thư mục cho dữ liệu NextCloud:
$ mkdir /mnt/my-data/nc-data
Sau đó, khi chạy hình ảnh vùng chứa NextCloud của bạn, hãy cung cấp thông tin để ánh xạ ổ đĩa vào thư mục dữ liệu NextCloud nội bộ:
$ docker chạy -d \
-v /mnt/my-data/nc-data:/var/www/html \
đám mây tiếp theo
Nếu bạn muốn có một cơ sở dữ liệu bên ngoài, hãy làm tương tự với MariaDB:
$ mkdir /mnt/my-data/nc-mariadb
$ docker chạy -d \
-v /mnt/my-data/nc-mariadb:/var/lib/mysql \
mariadb
Đảm bảo chủ sở hữu và quyền đối với thư mục dữ liệu khớp với quyền của vùng chứa đang chạy.
Tôi thấy rằng nó dễ sử dụng nhất soạn thảo docker
để tạo một tệp cài đặt hoàn chỉnh của toàn bộ ngăn xếp vùng chứa. Sử dụng ví dụ trên, và soạn thảo docker
tệp được hiển thị trên Docker Hub, đây sẽ là kết quả:
phiên bản: '2'
dịch vụ:
đb:
hình ảnh: mariadb
khởi động lại: luôn luôn
lệnh: --transaction-isolation=READ-CAM KẾT --binlog-format=ROW
khối lượng:
- /mnt/my-data/nc-mariadb:/var/lib/mysql
môi trường:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=đám mây tiếp theo
- MYSQL_USER=nextcloud
ứng dụng:
hình ảnh: đám mây tiếp theo
khởi động lại: luôn luôn
cổng:
- 8080:80
liên kết:
- db
khối lượng:
- /mnt/my-data/nc-data:/var/www/html
môi trường:
- MYSQL_PASSWORD=
- MYSQL_DATABASE=đám mây tiếp theo
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
Lưu ý rằng phần "tập" không có, vì chúng tôi ánh xạ một đường dẫn tuyệt đối trên hệ thống máy chủ của bạn (/mnt/my-data/nc-xxxx
) và không phải là một khối lượng được đặt tên.