Khắc phục: Không thể kết nối với Daemon Docker

Bạn có thể rất bối rối nếu một thiết bị đầu cuối Linux đang ném một không thể kết nối với các daemon Docker lỗi tại bạn, bởi vì nhiều khả năng Docker daemon đã chạy khi bạn thấy điều đó. Trong khi bạn sẽ muốn đảm bảo rằng nó là, bạn có thể sẽ bối rối khi bạn phát hiện ra rằng lỗi này thậm chí không phải làm với dịch vụ không được bắt đầu. Nó chủ yếu được ném vào những người dùng chưa thêm chính họ vào nhóm Docker.

Docker đưa ra một nhóm người dùng riêng biệt trên các hệ thống Linux và những người có tài khoản người dùng không được thêm vào nó sẽ không thể kết nối với nó. Hãy nhớ rằng việc thêm một tài khoản người dùng vào nhóm Docker là tương đương với root chức năng vì daemon luôn chạy như người dùng root. Điều này có thể được mong đợi trên một hệ thống máy chủ Ubuntu người dùng đơn, nhưng nó chắc chắn sẽ là thứ cần lưu ý đối với những người chạy Docker trên Arch, Fedora hoặc Debian.

Phương pháp 1: Kiểm tra trạng thái dịch vụ Docker

Trong khi nó gần như chắc chắn là, bạn sẽ cần phải kiểm tra xem các dịch vụ Docker hiện đang chạy. Tại cửa sổ đầu cuối, chạy systemctl status docker.service như một người dùng bình thường. Bạn sẽ nhận được một số thông tin về daemon Docker của số PID đã được gán. Nếu không, bạn sẽ cần phải khởi động lại dịch vụ.

Nếu bạn đã khởi động lại nó, hãy thử làm bất cứ điều gì nó đã ném bạn không thể kết nối với lỗi daemon Docker. Nếu nó bây giờ hoạt động, sau đó bạn chỉ cần không có dịch vụ đang chạy và không thực sự cần phải lo lắng về bất cứ điều gì khác ngoài lý do nó không chạy. Thật không may, điều này không làm việc trong phần lớn các trường hợp, do đó bạn sẽ cần phải tiếp tục trong những tình huống đó.

Cách 2: Thêm người dùng vào nhóm Docker

Chạy thông tin docker từ dòng lệnh, thông thường sẽ cung cấp cho bạn không thể kết nối với lỗi daemon Docker một lần nữa.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Nếu đây là trường hợp, thì bạn sẽ cần phải chạy sudo groupadd docker; sudo usermod -aG docker $ USER để thêm chính bạn vào nhóm thích hợp. Nếu điều này đưa ra một lỗi vì bạn không có usermod, sau đó bạn có thể sửa đổi lệnh để chạy như sudo groupadd docker; sudo gpasswd -a $ docker, nhưng điều này thường không phải là một vấn đề bởi vì hầu hết các bản phân phối Linux thương mại cấp đang làm việc với cùng một bộ công cụ. Trong bất kỳ trường hợp nào, chạy dock newgrp để bạn có thể đăng nhập vào nhóm docker mới nếu bạn chưa có.

Hãy ghi nhớ điều này sẽ luôn thêm người dùng bạn hiện đang đăng nhập, điều này không nên quá nhiều vấn đề trên hầu hết các hệ thống của mọi người không có nhiều tài khoản ngoài một người dùng và tài khoản gốc. Vì bạn có quyền truy cập quản trị được khóa vào lúc này, hãy chạy sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock để sửa các quyền trên socket và lệnh docker . Thông thường, tệp socket chỉ thuộc về người dùng root nên điều này sẽ chính xác.

Sau khi chạy nó, bạn không nên gặp bất kỳ rắc rối nào vì nó bây giờ thuộc về cùng một nhóm mà bạn đã tạo trong lệnh trước. Bạn sẽ muốn thử nghiệm để đảm bảo rằng docker chạy mà không có sudo, tuy nhiên, do đó, gõ docker chạy hello-world như một người dùng thông thường để đảm bảo rằng bạn không nhận được bất kỳ lỗi nào khác.

Tại thời điểm này, rất ít người dùng sẽ vẫn nhận được bất kỳ loại thông báo lỗi nào. Hầu hết mọi thứ sẽ được sửa chữa vào thời điểm này, nhưng nếu bạn vẫn gặp sự cố, bạn có thể muốn đăng xuất hoàn toàn. Hãy thử mở một cửa sổ trình mô phỏng thiết bị đầu cuối khác, nhưng nếu điều này không làm việc đôi khi nó sẽ giúp hệ thống khởi động lại hoàn toàn nếu điều đó khả thi

Phương pháp 3: Sử dụng ACL để sửa đổi siêu dữ liệu Docker

Nếu bạn không muốn thuộc về một nhóm mà làm cho bạn giống như một người dùng root, sau đó bạn có thể thiết lập các tập tin ổ cắm để làm việc với chỉ một số điều khoản nhất định. Bạn có thể bỏ qua quy trình gpasswd nếu bạn muốn thực hiện theo cách này. Có để quét hệ thống tập tin cho các mục ACL khác nhau trong một gánh nặng cho những người làm một kiểm toán an ninh, nhưng nó ngăn cản bạn phải sử dụng hoàn toàn nhóm docker.

Nếu bạn muốn làm theo cách này, thì bạn có thể chạy sudo setfacl -m user: name: rw /var/run/docker.sock trong khi thay thế người dùng và tên bằng các nhãn thích hợp. Điều này cho phép truy cập vào socket Docker tại /var/run/docker.sock, nó sẽ hoạt động với Debian và Ubuntu Server.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Facebook Twitter Google Plus Pinterest