Score:1

ไม่อนุญาตให้ใช้การดำเนินการระบบไฟล์ที่เมาท์ประกอบนักเทียบท่าสำหรับไดรฟ์ข้อมูล

ธง ro

ฉันประสบปัญหากับ docker-compose มันติดตั้งไดรฟ์ข้อมูลในโฟลเดอร์บนฮาร์ดไดรฟ์ที่ต่อเชื่อม ฉันได้เห็นวิธีแก้ปัญหามากมายที่นั่นและลองใช้ทั้งหมดอย่างตรงไปตรงมา

ฉันเปลี่ยนสิทธิ์ให้กับผู้ใช้ที่ฉันใช้ รูท นักเทียบท่า ภายในกลุ่มที่เกี่ยวข้อง ไม่มีอะไร

การดำเนินการเขียนทำงานได้ดี ฉันสามารถเขียนไฟล์ผ่าน python ได้ ฉันไม่ได้ถูกจำกัด แต่เมื่อฉันรัน docker Composite เพื่อสร้าง sql db มันให้สิ่งนี้กับฉัน:

ข้อผิดพลาด: สำหรับ mysql_db ไม่สามารถเริ่มบริการ mysql_db: เกิดข้อผิดพลาดขณะ การสร้างเส้นทางแหล่งเมานต์ '/db-path-mount': chown /db-path-mount/db-volume-folder/db-one: ไม่อนุญาตให้ดำเนินการ

ข้อผิดพลาด: สำหรับ mysql_db ไม่สามารถเริ่มบริการ mysql_db: เกิดข้อผิดพลาดขณะ การสร้างเส้นทางแหล่งเมานต์ '/db-path-mount': chown /db-path-mount/db-volume-folder/db-one: ไม่อนุญาตให้ดำเนินการ ข้อผิดพลาด: พบข้อผิดพลาดขณะนำขึ้นโครงการ

ดูเหมือนว่าการแก้ไขปัญหาจะหายาก ฉันลอง docker-compose up -d และ sudo docker-compose up -d ไม่มีอะไรเปลี่ยนแปลงจริงๆ

drwxr-xr-x 3 myUser นักเทียบท่า 4028276 26 ก.ค. 04:47 db-volume-folder/

และจุดเชื่อมต่อของฉัน (etc/fstab):

UUID=MY_UUID /home/user/my_mount_point auto uid=1001,gid=122,umask=022,ค่าเริ่มต้น 0 1

(gid=122 คือนักเทียบท่า)
(uid=1001 คือผู้ใช้)

ฉันใช้เซิร์ฟเวอร์ Ubuntu 20

นักเทียบท่า-compose.yml:

รุ่น: "3.7"
บริการ:
  my_sql_db:
    ชื่อคอนเทนเนอร์: my_sql_db
    ผู้ใช้: ราก
    รูปภาพ: mysql/mysql-server:latest
    พอร์ต:
      - "1533:3306"
    env_file:
      - ความลับ/sqlserver.env
      - ความลับ/sqlpassword.env
    ปริมาณ:
      - ./db-path-mount/db-volume-folder/db-one:/var/lib/mysql
Artur Meinild avatar
vn flag
คุณช่วยแชร์ `docker-compose.yml` ของคุณได้ไหม (อย่าลืมแก้ไขรหัสผ่าน ฯลฯ) นอกจากนี้ จุดเชื่อมต่อถูกกำหนดไว้ใน `/ etc / fstab` ของคุณหรือไม่
Brain Bytes avatar
ro flag
แน่นอน ฉันโพสต์แล้ว ใช่ จุดเชื่อมต่ออยู่ใน fstab
Score:0
ธง vn

มีสองสิ่งในการตั้งค่าของคุณที่ฉันจะทำแตกต่างออกไป และฉันจะพยายามสรุปสิ่งนี้ในคำตอบของฉัน ฉันไม่สามารถรับประกันได้ว่าจะใช้งานได้ แต่ฉันจะตั้งค่าคอนเทนเนอร์อย่างไร หวังว่าจะช่วยได้

ก่อนอื่นฉันจะไม่เมานต์ดิสก์ข้อมูลด้วย uid และ กิด คุณลักษณะ. ฉันจะเมานต์ด้วยแอตทริบิวต์เริ่มต้นเช่นนี้

UUID=MY_UUID /home/user/my_mount_point auto umask=022 ค่าเริ่มต้น 0 1

(จากนี้ไปจะใช้ /home/user/my_mount_point เป็นข้อมูลอ้างอิงจากตำแหน่งที่เมาต์ดิสก์ของคุณ)

ประการที่สอง ฉันไม่เข้าใจการอ้างอิงปริมาณของคุณใน นักเทียบท่า-compose.yml. ฉันจะมีสิ่งนี้:

    ปริมาณ:
      - /home/user/my_mount_point/db-volume-folder/db-one:/var/lib/mysql

โปรดทราบว่าฉันจะใช้เส้นทางที่แน่นอนเสมอใน นักเทียบท่า-compose.yml.

นอกจากนี้ ความเป็นเจ้าของควรตรงกับคอนเทนเนอร์ที่ทำงานอยู่ ดังนั้นโฟลเดอร์ ฐานข้อมูลหนึ่ง ควรเป็นเจ้าของโดย root

myUser@ubuntu:~/my_mount_point/db-volume-folder$

drwxr-xr-x 3 รูทรูท 4028276 26 ก.ค. 04:47 น.

โปรดทราบว่าชื่อโฟลเดอร์ ฐานข้อมูลหนึ่ง ควรตรงกับ โฟลเดอร์สุดท้าย บน ด้านซ้าย ในเส้นทางเมานต์โวลุ่ม - นี่คือโฟลเดอร์ที่สิทธิ์มีความสำคัญ

ประการสุดท้าย ดังที่คุณได้กล่าวไว้ นักเทียบท่าเขียนยังสนับสนุนให้คุณระบุผู้ใช้ที่คอนเทนเนอร์ควรเรียกใช้ด้วย ดังนั้นฉันเชื่อว่าคุณสามารถเปลี่ยนผู้ใช้และเปลี่ยนความเป็นเจ้าของได้

ดังนั้นหากคุณเปลี่ยนผู้ใช้ดังนี้:

รุ่น: "3.7"
บริการ:
  my_sql_db:
    ชื่อคอนเทนเนอร์: my_sql_db
    ผู้ใช้: myUser

จากนั้นสิทธิ์ของโฟลเดอร์ที่จะจับคู่:

myUser@ubuntu:~/my_mount_point/db-volume-folder$

drwxr-xr-x 3 myUser myUser 4028276 26 ก.ค. 04:47 น.

ฉันหวังว่าคำแนะนำบางส่วนจะใช้ได้ผลสำหรับคุณ โปรดแจ้งให้เราทราบหากได้ผล

แก้ไข:

ฉันเพิ่งทดสอบคอนเทนเนอร์ MySql ด้วย docker-compose.yml ต่อไปนี้:

รุ่น: "3.7"

บริการ:

  my_sql_db:
    ชื่อคอนเทนเนอร์: my_sql_db
    ผู้ใช้: ราก
    รูปภาพ: mysql/mysql-server:latest
    พอร์ต:
      - "1533:3306"
    สิ่งแวดล้อม:
      MYSQL_ROOT_PASSWORD: ความลับสุดยอด
      MYSQL_USER: mysqluser
      MYSQL_PASSWORD: รหัสผ่าน mysql
    ปริมาณ:
      - /mnt/zfs/docker-data/mysql-test/db-one:/var/lib/mysql
    รีสตาร์ท: เสมอ

นี่คือเนื้อหาของโฟลเดอร์ /mnt/zfs/docker-data/mysql-test:

/mnt/zfs/docker-data/mysql-test$ ls -la
รวม 7
drwxr-xr-x 3 รูท รูท 4 1 ส.ค. 22:02 .
drwxr-xr-x 22 รูท 22 ส.ค. 1 21:47 ..
drwxr-xr-x 6 27 sudo 30 ส.ค. 1 21:59 น. db-หนึ่ง
-rw-r--r-- 1 รูท 374 1 ส.ค. 21:58 docker-compose.yml

ด้วยวิธีนี้คอนเทนเนอร์จึงสำเร็จ ดูเหมือนว่าตัวคอนเทนเนอร์จะเปลี่ยนความเป็นเจ้าของเป็น 27:ซูโด (ฉันเดาว่านี่เป็นค่าเริ่มต้น)

ถ้าฉันเปลี่ยนผู้ใช้ใน นักเทียบท่า-compose.yml ถึง myuser:myuser และเปลี่ยนสิทธิ์ในโฟลเดอร์ด้วย ฐานข้อมูลหนึ่ง ถึง myuser:myuserฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเริ่มคอนเทนเนอร์:

ข้อผิดพลาด: สำหรับ my_sql_db ไม่สามารถเริ่มบริการ my_sql_db: ไม่พบผู้ใช้ myuser: ไม่มีรายการที่ตรงกันในไฟล์ passwd

ดูเหมือนว่าปัญหาจะอยู่ระหว่างการจับคู่ผู้ใช้ ไม่ใช่การเป็นเจ้าของระบบไฟล์ และหากคุณพบข้อผิดพลาดอื่น อาจเป็นอย่างอื่นนอกเหนือจากความเป็นเจ้าของระบบไฟล์ ดูลิงก์ของฉันในความคิดเห็น

Brain Bytes avatar
ro flag
กำลังสร้าง my_db ... เกิดข้อผิดพลาด ข้อผิดพลาด: สำหรับ my_db ไม่สามารถเริ่มบริการ my_db: การสร้างรันไทม์ OCI ล้มเหลว: container_linux.go:380: การเริ่มต้นกระบวนการคอนเทนเนอร์เกิดจาก: process_linux.go:385: การใช้การกำหนดค่ากลุ่ม cgroup สำหรับกระบวนการ สาเหตุ: ไม่พบการเมานต์ cgroup ใน mountinfo: ไม่ทราบ ข้อผิดพลาด: สำหรับ my_db ไม่สามารถเริ่มบริการ my_db: การสร้างรันไทม์ OCI ล้มเหลว: container_linux.go:380: การเริ่มต้นกระบวนการคอนเทนเนอร์เกิดจาก: process_linux.go:385: การใช้การกำหนดค่ากลุ่ม cgroup สำหรับกระบวนการ สาเหตุ: ไม่พบการเมานต์ cgroup ใน mountinfo: ไม่ทราบ ข้อผิดพลาด: พบข้อผิดพลาดขณะเปิดโครงการ
Brain Bytes avatar
ro flag
ทำทุกอย่าง ^^ สิ่งที่ได้รับ
Artur Meinild avatar
vn flag
คุณช่วยแก้ไขคำถามของคุณด้วยไฟล์ปรับแต่งใหม่ และตรวจดูให้แน่ใจว่ามีเส้นทางของไดรฟ์ข้อมูลที่ถูกต้องด้วย ถ้าไม่ใช่ ฉันก็ช่วยแก้ปัญหาไม่ได้
Artur Meinild avatar
vn flag
[โพสต์นี้ใน Stack Overflow](https://stackoverflow.com/questions/66004068/how-to-resolve-no-cgroup-mount-found-in-mountinfo-unknown-error) มีคำแนะนำในการแก้ไขข้อผิดพลาดใหม่ให้คุณ กำลังได้รับ - คุณช่วยตรวจสอบเรื่องนี้ได้ไหม ขอบคุณ.
Artur Meinild avatar
vn flag
ดูเหมือนว่าอาจมีปัญหากับการติดตั้งนักเทียบท่าหรือการกำหนดค่า systemd cgroup
Brain Bytes avatar
ro flag
ไม่และไม่ลองตลอดสิ่งที่อยู่ในเธรดนั้นและฉันได้รับข้อผิดพลาดเดียวกัน ฉันติดตั้งนักเทียบท่าใหม่สองครั้งก่อนที่จะใช้คำแนะนำแรก (การแก้ไขของคุณ) และลองใช้สิ่งที่อยู่ในเธรด ข้อผิดพลาดเดียวกัน (ข้อผิดพลาด OCI)
Artur Meinild avatar
vn flag
แปลก. สำหรับการอ้างอิง ฉันใช้ [MariaDB จาก Linuxserver.io](https://hub.docker.com/r/linuxserver/mariadb) เป็นการส่วนตัวโดยไม่มีปัญหา ถ้านั่นเป็นตัวเลือกสำหรับคุณ ลองหมุนดูไหม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา