ฉันเชื่อว่าวิธีที่ถูกต้องในการดำเนินการนี้คือการติดตั้งไดรฟ์ภายนอกบนระบบโฮสต์ของคุณ จากนั้นทำการแมปไดรฟ์ข้อมูลไปยังคอนเทนเนอร์เมื่อเริ่มต้น
ฉันจะให้ตัวอย่างพื้นฐานกับ คอนเทนเนอร์ Cloud ถัดไป.
ดังนั้นเมานต์ไดรฟ์ภายนอกตามปกติบนระบบโฮสต์ของคุณ - สมมติว่าคุณเมานต์ไปที่ /mnt/ข้อมูลของฉัน
.
ถัดไป คุณต้องการสร้างไดเร็กทอรีสำหรับข้อมูล NextCloud:
$ mkdir /mnt/my-data/nc-data
จากนั้น เมื่อรันอิมเมจคอนเทนเนอร์ NextCloud ของคุณ ให้ระบุข้อมูลเพื่อแมปวอลุ่มเข้ากับไดเร็กทอรีข้อมูล NextCloud ภายใน:
$ นักเทียบท่ารัน -d \
-v /mnt/my-data/nc-data:/var/www/html \
เน็กซ์คลาวด์
หากคุณต้องการฐานข้อมูลภายนอก ให้ทำเช่นเดียวกันกับ MariaDB:
$ mkdir /mnt/my-data/nc-mariadb
$ นักเทียบท่ารัน -d \
-v /mnt/my-data/nc-mariadb:/var/lib/mysql \
มาเรียด
ตรวจสอบให้แน่ใจว่าเจ้าของและสิทธิ์สำหรับไดเร็กทอรีข้อมูลตรงกับคอนเทนเนอร์ที่กำลังทำงานอยู่
ฉันคิดว่ามันใช้งานง่ายที่สุด นักเทียบท่าเขียน
เพื่อสร้างไฟล์การติดตั้งที่สมบูรณ์ของสแต็กคอนเทนเนอร์ทั้งหมด โดยใช้ตัวอย่างข้างต้นและ นักเทียบท่าเขียน
ไฟล์ที่แสดงบน Docker Hub นี่จะเป็นผลลัพธ์:
รุ่น: '2'
บริการ:
ฐานข้อมูล:
ภาพ: mariadb
รีสตาร์ท: เสมอ
คำสั่ง: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
ปริมาณ:
- /mnt/my-data/nc-mariadb:/var/lib/mysql
สิ่งแวดล้อม:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=เน็กซ์คลาวด์
- MYSQL_USER=เน็กซ์คลาวด์
แอป:
ภาพ: nextcloud
รีสตาร์ท: เสมอ
พอร์ต:
- 8080:80
ลิงค์:
- ฐานข้อมูล
ปริมาณ:
- /mnt/my-data/nc-data:/var/www/html
สิ่งแวดล้อม:
- MYSQL_PASSWORD=
- MYSQL_DATABASE=เน็กซ์คลาวด์
- MYSQL_USER=เน็กซ์คลาวด์
- MYSQL_HOST=ฐานข้อมูล
โปรดทราบว่าไม่มีส่วน "วอลุ่ม" เนื่องจากเราแมปพาธที่แน่นอนบนระบบโฮสต์ของคุณ (/mnt/my-data/nc-xxxx
) และไม่ใช่วอลุ่มที่มีชื่อ