แก้ไข: ไม่สามารถเชื่อมต่อกับ Docker Daemon
คุณอาจจะสับสนมากถ้าลินุกซ์เทอร์มินัลกำลังขว้างปาไม่สามารถเชื่อมต่อกับข้อผิดพลาด Docker daemon ได้ที่คุณเนื่องจากภูต Docker มีแนวโน้มที่จะทำงานอยู่เมื่อคุณเห็นแล้ว ในขณะที่คุณต้องการให้แน่ใจว่าเป็นคุณอาจจะงงงวยเมื่อคุณพบว่าข้อผิดพลาดนี้ไม่ได้เกี่ยวข้องกับบริการที่ไม่ได้เริ่มต้น ส่วนใหญ่ได้รับการโยนที่ผู้ใช้ที่ยังไม่ได้เพิ่มตัวเองให้กับกลุ่ม Docker
Docker ออกกลุ่มผู้ใช้แยกต่างหากในระบบ Linux และผู้ที่มีบัญชีผู้ใช้ที่ไม่ได้เพิ่มเข้าไปจะไม่สามารถเชื่อมต่อได้ โปรดจำไว้ว่าการเพิ่มบัญชีผู้ใช้ลงในกลุ่มผู้เทียบท่าเรือจะมีความหมายเทียบเท่ารากเนื่องจากภูตใช้งานอยู่ในฐานะผู้ใช้ root นี้อาจจะคาดหวังในระบบผู้ใช้คนเดียว Ubuntu Server แต่แน่นอนจะเป็นสิ่งที่ต้องทราบสำหรับผู้ที่ทำงาน Docker ใน Arch, Fedora หรือ Debian
วิธีที่ 1: การตรวจสอบสถานะการให้บริการ Docker
ในขณะที่เกือบจะแน่นอนคือคุณจะต้องตรวจสอบว่ามีการใช้งาน Docker อยู่หรือไม่ ที่หน้าต่างเทอร์มินัลให้เรียกใช้งาน docker.service สถานะ systemctl ในฐานะผู้ใช้ตามปกติ คุณควรได้รับข้อมูลบางอย่างเกี่ยวกับจำนวนภูต Docker ของ PID ที่ได้รับมอบหมาย ถ้าคุณไม่ทำคุณจะต้องเริ่มต้นบริการใหม่
หากคุณเริ่มต้นใหม่ลองทำสิ่งที่ทำให้คุณไม่สามารถเชื่อมต่อกับข้อผิดพลาด Docker daemon ได้ ถ้าตอนนี้ทำงานแล้วคุณก็ไม่ได้มีบริการที่ทำงานและไม่จำเป็นต้องกังวลเกี่ยวกับสิ่งอื่นใดนอกจากเหตุผลที่มันไม่ได้ทำงาน แต่น่าเสียดายที่สิ่งนี้ไม่ได้ผลในกรณีส่วนใหญ่ดังนั้นคุณจะต้องย้ายไปอยู่ในสถานการณ์เหล่านั้น
วิธีที่ 2: การเพิ่มผู้ใช้ลงใน Docker Group
เรียกใช้ ข้อมูลนักเทียบท่า จากบรรทัดคำสั่งซึ่งปกติจะทำให้คุณไม่สามารถเชื่อมต่อข้อผิดพลาด Docker daemon อีกครั้งได้
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่หากเป็นกรณีนี้คุณจะต้องเรียกใช้งาน sudo groupadd docker; sudo usermod -aG docker $ USER เพื่อเพิ่มตัวคุณเองเข้ากลุ่มที่เหมาะสม ควรให้ข้อผิดพลาดเนื่องจากคุณไม่มี usermod จากนั้นคุณสามารถแก้ไขคำสั่งเพื่อเรียกใช้เป็น sudo groupadd docker; sudo gpasswd-a $ USER docker แต่โดยทั่วไปแล้วไม่ควรเป็นปัญหาเพราะดิสทริบิวชัน Linux เกรดเชิงพาณิชย์ส่วนใหญ่ทำงานร่วมกับชุดเครื่องมือเดียวกัน ไม่ว่าในกรณีใดให้เรียกใช้ นักเทียบท่า newgrp เพื่อให้คุณสามารถเข้าสู่กลุ่มนักเทียบท่าใหม่ได้หากยังไม่ได้ทำ
โปรดจำไว้เสมอว่านี่จะเพิ่มผู้ใช้ที่คุณเข้าสู่ระบบอยู่เป็นประจำซึ่งจะต้องไม่เกิดปัญหากับระบบของคนส่วนใหญ่ที่ไม่มีบัญชีมากกว่าหนึ่งบัญชีและบัญชีราก เนื่องจากคุณมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบในขณะนี้ให้เรียกใช้ นักเทียบท่า sudo chgrp docker / usr / bin; sudo chgrp docker /var/run/docker.sock เพื่อแก้ไขสิทธิ์บนซ็อกเก็ตท่าเรือและคำสั่ง โดยปกติซ็อกเก็ตไฟล์เป็นของผู้ใช้ root เท่านั้นดังนั้นนี้จะแก้ไขได้
หลังจากใช้งานแล้วคุณไม่ควรมีปัญหาเพราะตอนนี้เป็นของกลุ่มเดียวกันกับที่คุณสร้างขึ้นในคำสั่งก่อนหน้านี้ คุณจะต้องทดสอบเพื่อให้แน่ใจว่านักเทียบท่าทำงานโดยไม่ใช้ sudo แต่ นักพัฒนาซอฟต์แวร์ ประเภทนี้จะ เรียกใช้ hello-world ในฐานะผู้ใช้ทั่วไปเพื่อให้แน่ใจว่าคุณจะไม่ได้รับข้อผิดพลาดอื่น ๆ
ณ จุดนี้ผู้ใช้จำนวนน้อยจะยังคงได้รับข้อความแสดงข้อผิดพลาด สิ่งสำคัญที่สุดควรได้รับการแก้ไขในตอนนี้ แต่ถ้าคุณยังมีปัญหาอยู่คุณอาจต้องการออกจากระบบ ลองเปิดหน้าต่างจำลอง terminal อื่น แต่ถ้าไม่ได้ผลบางครั้งก็ช่วยนำระบบลงเพื่อเริ่มระบบใหม่ได้หากเป็นไปได้ทั้งหมด
วิธีที่ 3: การใช้ ACL เพื่อแก้ไขข้อมูลเม็ทข้อมูลของนักเทียบท่า
ถ้าคุณไม่ต้องการอยู่ในกลุ่มที่ทำให้คุณเป็นผู้ใช้ root คุณสามารถตั้งค่าไฟล์ซ็อกเก็ตให้ทำงานได้เฉพาะบางสิทธิ์เท่านั้น คุณสามารถละเลยกระบวนการ gpasswd ได้หากคุณต้องการทำเช่นนี้ ต้องสแกนระบบไฟล์สำหรับรายการ ACL ที่แตกต่างกันเป็นภาระสำหรับผู้ที่ทำการตรวจสอบความปลอดภัย แต่จะป้องกันไม่ให้คุณต้องใช้กลุ่มนักเทียบท่าทั้งหมด
คุณควรจะทำแบบนี้จากนั้นคุณสามารถเรียกใช้ sudo setfacl -m ชื่อผู้ใช้: rw /var/run/docker.sock ขณะที่เปลี่ยนชื่อผู้ใช้และชื่อด้วยชื่อที่เหมาะสม อนุญาตให้เข้าถึงซ็อกเก็ต Docker ที่ /var/run/docker.sock ซึ่งควรทำงานร่วมกับ Debian และ Ubuntu Server
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่