Điểm:1

Hoạt động của hệ thống tệp được gắn Docker-compose không được phép cho âm lượng

lá cờ ro

Tôi đang gặp sự cố với docker-compose, nó gắn một ổ đĩa vào một thư mục trên ổ cứng được gắn. Tôi đã thấy rất nhiều giải pháp ngoài kia và đã thành thật thử tất cả chúng.

Tôi đã thay đổi quyền đối với người dùng mà tôi đang sử dụng, thành root, thành docker, trong các nhóm tương ứng của họ. Không

Các thao tác viết hoạt động tốt, tôi có thể viết một tệp thông qua python. Tôi không bị hạn chế, nhưng khi tôi chạy docker Compose để tạo một sql db, nó sẽ cho tôi điều này:

LỖI: đối với mysql_db Không thể khởi động dịch vụ mysql_db: lỗi trong khi tạo đường dẫn nguồn gắn kết '/db-path-mount': chown /db-path-mount/db-volume-folder/db-one: thao tác không được phép

LỖI: đối với mysql_db Không thể khởi động dịch vụ mysql_db: lỗi trong khi tạo đường dẫn nguồn gắn kết '/db-path-mount': chown /db-path-mount/db-volume-folder/db-one: thao tác không được phép LỖI: Đã gặp lỗi khi đưa dự án lên.

Có vẻ như việc khắc phục sự cố rất khan hiếm, tôi đã thử docker-compose up -d và sudo docker-compose up -d, không có gì thực sự thay đổi.

drwxr-xr-x 3 myUser docker 4028276 Ngày 26 tháng 7 04:47 db-volume-folder/

và điểm gắn kết của tôi (etc/fstab):

UUID=MY_UUID /home/user/my_mount_point auto uid=1001,gid=122,umask=022,mặc định 0 1

(gid=122 là docker)
(uid=1001 là người dùng)

Tôi đang sử dụng máy chủ Ubuntu 20

docker-compose.yml:

phiên bản: "3.7"
dịch vụ:
  my_sql_db:
    container_name: my_sql_db
    người dùng: gốc
    hình ảnh: mysql/mysql-server: mới nhất
    cổng:
      - "1533:3306"
    env_file:
      - bí mật/sqlserver.env
      - bí mật/sqlpassword.env
    khối lượng:
      - ./db-path-mount/db-volume-folder/db-one:/var/lib/mysql
Artur Meinild avatar
lá cờ vn
Bạn có phiền khi chia sẻ `docker-compose.yml` của mình không (hãy nhớ sắp xếp lại mọi mật khẩu, v.v.). Ngoài ra, điểm gắn kết có được xác định trong `/etc/fstab` của bạn không?
Brain Bytes avatar
lá cờ ro
Chắc chắn, tôi đã đăng nó, vâng, điểm gắn kết nằm trong fstab
Điểm:0
lá cờ vn

Có một số điều trong thiết lập của bạn mà tôi sẽ làm khác đi và tôi sẽ cố gắng phác thảo điều này trong câu trả lời của mình. Tôi không thể đảm bảo nó sẽ hoạt động, nhưng đó là cách tôi thiết lập vùng chứa của mình, vì vậy hy vọng nó có thể hữu ích.

Đầu tiên, tôi sẽ không gắn đĩa dữ liệu của mình với uidgid thuộc tính. Tôi sẽ gắn kết với các thuộc tính mặc định, như thế này:

UUID=MY_UUID /home/user/my_mount_point auto umask=022,mặc định 0 1

(Từ thời điểm này trở đi, tôi sẽ sử dụng /home/user/my_mount_point như một tài liệu tham khảo từ nơi đĩa của bạn được gắn kết.)

Thứ hai, tôi không hiểu tài liệu tham khảo khối lượng của bạn trong docker-compose.yml. Tôi sẽ có nó như thế này:

    khối lượng:
      - /home/user/my_mount_point/db-volume-folder/db-one:/var/lib/mysql

Lưu ý rằng tôi sẽ luôn sử dụng một đường dẫn tuyệt đối trong docker-compose.yml.

Ngoài ra, quyền sở hữu phải khớp với quyền sở hữu của vùng chứa đang chạy, vì vậy thư mục db-one nên được sở hữu bởi root.

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

gốc drwxr-xr-x 3 gốc 4028276 ngày 26 tháng 7 04:47 db-one

Lưu ý rằng tên thư mục db-one nên phù hợp với thư mục cuối cùng trên bên trái trong đường dẫn gắn ổ đĩa - đây là thư mục chứa các quyền quan trọng.

Cuối cùng, như bạn đã lưu ý, docker-compose cũng hỗ trợ bạn chỉ định người dùng mà vùng chứa sẽ chạy. Vì vậy, tôi tin rằng bạn có thể thay đổi người dùng và sau đó thay đổi quyền sở hữu cho phù hợp.

Vì vậy, nếu bạn thay đổi người dùng như thế này:

phiên bản: "3.7"
dịch vụ:
  my_sql_db:
    container_name: my_sql_db
    người dùng: myUser

Và sau đó các quyền của thư mục phù hợp:

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

drwxr-xr-x 3 myUser myUser 4028276 ngày 26 tháng 7 04:47 db-one

Tôi hy vọng một số hướng dẫn này sẽ phù hợp với bạn - vui lòng cho chúng tôi biết nếu có.

CHỈNH SỬA:

Tôi vừa kiểm tra vùng chứa MySql với docker-compose.yml sau:

phiên bản: "3.7"

dịch vụ:

  my_sql_db:
    container_name: my_sql_db
    người dùng: gốc
    hình ảnh: mysql/mysql-server: mới nhất
    cổng:
      - "1533:3306"
    môi trường:
      MYSQL_ROOT_PASSWORD: bí mật hàng đầu
      MYSQL_USER: mysqluser
      MYSQL_PASSWORD: mật khẩu mysql
    khối lượng:
      - /mnt/zfs/docker-data/mysql-test/db-one:/var/lib/mysql
    khởi động lại: luôn luôn

Đây là nội dung của thư mục /mnt/zfs/docker-data/mysql-test:

/mnt/zfs/docker-data/mysql-test$ ls -la
tổng số 7
drwxr-xr-x 3 gốc gốc 4 ngày 1 tháng 8 22:02 .
drwxr-xr-x 22 root root 22 ngày 1 tháng 8 21:47 ..
drwxr-xr-x 6 27 sudo 30 ngày 1 tháng 8 21:59 db-one
-rw-r--r-- 1 gốc gốc 374 ngày 1 tháng 8 21:58 docker-compose.yml

Bằng cách này, container xuất hiện thành công. Có vẻ như container tự thay đổi quyền sở hữu thành 27:sudo (Tôi đoán đây là những giá trị mặc định).

Nếu tôi thay đổi người dùng trong docker-compose.yml đến người dùng của tôi:người dùng của tôi và cũng thay đổi quyền trên thư mục db-one đến người dùng của tôi:người dùng của tôi, tôi gặp lỗi này khi cố gắng khởi động vùng chứa:

LỖI: đối với my_sql_db Không thể bắt đầu dịch vụ my_sql_db: không thể tìm thấy người dùng myuser: không có mục nào phù hợp trong tệp mật khẩu

Vì vậy, có vẻ như vấn đề là giữa những người dùng phù hợp chứ không phải quyền sở hữu hệ thống tệp. Và nếu bạn gặp lỗi khác, thì đó có thể là lỗi khác ngoài quyền sở hữu hệ thống tệp - hãy xem liên kết của tôi trong nhận xét.

Brain Bytes avatar
lá cờ ro
Tạo my_db ... lỗi LỖI: đối với my_db Không thể khởi động dịch vụ my_db: Tạo thời gian chạy OCI không thành công: container_linux.go:380: gây ra quá trình bắt đầu vùng chứa: process_linux.go:385: áp dụng cấu hình cgroup cho quá trình gây ra: không tìm thấy trình gắn cgroup trong mountinfo: không xác định LỖI: đối với my_db Không thể khởi động dịch vụ my_db: Tạo thời gian chạy OCI không thành công: container_linux.go:380: gây ra quá trình bắt đầu vùng chứa: process_linux.go:385: áp dụng cấu hình cgroup cho quá trình gây ra: không tìm thấy trình gắn cgroup trong mountinfo: không xác định LỖI: Đã gặp lỗi khi khởi chạy dự án.
Brain Bytes avatar
lá cờ ro
Đã làm tất cả mọi thứ ^^ những gì tôi nhận được
Artur Meinild avatar
lá cờ vn
Bạn có thể chỉnh sửa câu hỏi của mình bằng các tệp cấu hình mới không, đồng thời đảm bảo có đường dẫn âm lượng chính xác - nếu không, tôi không thể giúp khắc phục sự cố.
Artur Meinild avatar
lá cờ vn
[Bài đăng này trên Stack Overflow](https://stackoverflow.com/questions/66004068/how-to-resolve-no-cgroup-mount-found-in-mountinfo-unknown-error) có các đề xuất để giải quyết lỗi mới mà bạn đang nhận được - bạn có thể xem xét điều này không? Cảm ơn.
Artur Meinild avatar
lá cờ vn
Có vẻ như đã xảy ra sự cố với cài đặt docker hoặc cấu hình cgroup systemd của bạn.
Brain Bytes avatar
lá cờ ro
Không và không, đã thử trong suốt nội dung trong chủ đề đó và tôi nhận được cùng một lỗi chính xác. Tôi đã cài đặt lại docker hai lần, trước khi áp dụng đề xuất đầu tiên (chỉnh sửa của bạn) và thử những gì trong chuỗi, cùng một lỗi (lỗi OCI)
Artur Meinild avatar
lá cờ vn
Lạ lùng. Để tham khảo, cá nhân tôi đã và đang sử dụng [MariaDB từ Linuxserver.io](https://hub.docker.com/r/linuxserver/mariadb) mà không gặp vấn đề gì, nếu đó là một tùy chọn dành cho bạn, bạn có thể dùng thử không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.