Docker 'Quyền bị từ chối' Lỗi

Docker Quyen Bi Tu Choi Loi



Khi làm việc với Docker, bạn có thể gặp trường hợp lệnh trả về lỗi “quyền bị từ chối”. Lỗi này xảy ra khi bạn cố chạy Docker mà không có đủ quyền cho lệnh.

Docker yêu cầu quyền sudo hoặc quyền root để thực thi các lệnh liên quan theo mặc định. Cố gắng chạy bất kỳ lệnh nào mà không có các đặc quyền cần thiết sẽ dẫn đến lỗi “quyền bị từ chối” khét tiếng.







Hướng dẫn này cung cấp các phương pháp và kỹ thuật khác nhau mà bạn có thể sử dụng để khắc phục lỗi “quyền bị từ chối” khi cố chạy các lệnh Docker.



Hãy nhớ rằng nó không bao gồm quá trình chạy Docker trong môi trường không có root. Bạn có thể xem hướng dẫn của chúng tôi về Docker không cần root trong tài nguyên sau:



Yêu cầu:

Như bạn có thể đoán, để theo dõi bài đăng này, bạn bắt buộc phải có những điều sau:





    1. Docker phiên bản 20.0 trở lên
    2. Quyền Sudo hoặc root trên hệ thống máy chủ

Lỗi 'Quyền bị từ chối' là gì?

Khi xảy ra lỗi “quyền bị từ chối” trong Docker, điều đó có nghĩa là hệ thống máy chủ không thể thiết lập liên lạc với daemon Docker do không đủ quyền. Một ví dụ được hiển thị sau đây:

$ docker chạy -Nó hộp bận rộn sh



Nếu gặp phải lỗi nhất định, bạn có thể sử dụng một số phương pháp sau để tìm hiểu cách khắc phục.



Phương pháp 1: Chạy Docker với quyền Root

Phương pháp đầu tiên và rõ ràng nhất để giải quyết lỗi “quyền bị từ chối” của Docker là sử dụng lệnh “sudo”. Nếu có đặc quyền sudo, bạn có thể khắc phục bằng cách chạy lệnh liên quan bằng sudo.

Ví dụ: để sửa lỗi nói trên, chúng ta có thể thêm sudo trước lệnh như sau:

$ sudo docker chạy -Nó hộp bận rộn sh



Như bạn có thể thấy, Docker đã kéo thành công các image cần thiết và chạy container.

Phương pháp 2: Khởi động lại Docker Daemon

Đôi khi, bạn có thể gặp lỗi “quyền bị từ chối” trong Docker nếu động cơ gặp sự cố. Thay vì theo dõi sự cố theo cách thủ công, bạn có thể thử khởi động lại nhanh trình nền Docker để tải lại.

Bắt đầu bằng cách kiểm tra trạng thái của daemon Docker như sau:

$ docker trạng thái systemctl docker



Khi bạn đảm bảo rằng Docker đang chạy, hãy khởi động lại dịch vụ bằng lệnh sau:

$ sudo docker khởi động lại systemctl


Thao tác này sẽ khởi động trình nền Docker và khắc phục mọi sự cố tiềm ẩn có thể ngăn bạn chạy bất kỳ lệnh nào.

Phương pháp 3: Kích hoạt người dùng không root

Một phương pháp khác mà bạn có thể sử dụng để giải quyết lỗi “quyền bị từ chối” trong Docker là cho phép người dùng không phải root thực thi các lệnh Docker.

Để kích hoạt phương pháp này, hãy đăng nhập vào hệ thống máy chủ và tạo một nhóm mới cho Docker.

$ sudo nhóm thêm -f docker


Tiếp theo, thêm bất kỳ người dùng nào bạn muốn vào nhóm Docker như sau:

$ sudo usermod -aG docker linuxhint


Lệnh trước sẽ thêm người dùng linuxhint vào nhóm Docker.

Cuối cùng, áp dụng các thay đổi nhóm cho phiên hiện tại bằng lệnh sau:

$ docker newgrp


Sau khi hoàn thành, bạn có thể chạy bất kỳ lệnh Docker nào mà không cần sử dụng sudo cho bất kỳ người dùng nào trong nhóm Docker.

Phương pháp 4: Cấu hình lại quyền của Docker

Phương pháp tiếp theo mà bạn có thể sử dụng là đặt lại quyền cho ổ cắm Docker. Bắt đầu bằng cách thay đổi quyền sở hữu ổ cắm Docker Unix bằng cách chạy lệnh sau:

$ sudo chown gốc: docker / đã từng là / chạy / docker.sock


Tiếp theo, chiếm quyền sở hữu thư mục Docker ẩn trong thư mục chính của bạn bằng lệnh như sau:

$ sudo chown -R ' $ NGƯỜI DÙNG ' : ' $ NGƯỜI DÙNG ' $HOME / .docker


Cuối cùng, gán cho nhóm quyền đọc và ghi vào thư mục như sau:

$ sudo chmod -R g+rw ' $HOME /.docker'


Các phương thức được cung cấp phải đặt đủ quyền cho các tệp và thư mục Docker cần thiết.

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu cách sử dụng bốn phương pháp chính để giải quyết lỗi “quyền bị từ chối” của Docker khi gọi lệnh Docker.