[Ubuntu] การตั้งค่าและหมายเหตุสำหรับการเรียกใช้นักเทียบท่าโดยไม่ต้องใช้คำสั่ง sudo
หมายเหตุเกี่ยวกับวิธีเรียกใช้นักเทียบท่าโดยไม่ต้องใช้ sudo เมื่อใช้นักเทียบท่าบน Ubuntu
โอกาส
หลังจากติดตั้งนักเทียบท่าแล้วsudo
ฉันพบข้อผิดพลาดเมื่อฉันตรวจสอบการทำงานโดยไม่มีคำสั่ง
# เรียกใช้จาก Ubuntu Terminal Docker เรียกใช้ Hello-World
นักเทียบท่า: ได้รับอนุญาตถูกปฏิเสธขณะพยายามเชื่อมต่อกับซ็อกเก็ต Docker daemon ที่ unix:///var/run/docker.sock: โพสต์ http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: เชื่อมต่อ: ปฏิเสธการอนุญาต ดู 'docker run --help'
ดูเหมือนว่าการเข้าถึง docker daemon จะถูกปฏิเสธ ฉันพิมพ์ sudo docker run hello-world และใช้งานได้
สาเหตุของข้อผิดพลาดมีดังนี้
นักเทียบท่าสื่อสารกับ daemon (นักเทียบท่า) ที่ทำงานด้วยสิทธิ์ระดับรูทผ่านซ็อกเก็ตยูนิกซ์หรือ tcp/ip แต่ในการเข้าถึงนักเทียบท่า คุณต้องเป็นสมาชิกของกลุ่มนักเทียบท่าหรือมีสิทธิ์ระดับรูท
ทำความเข้าใจเกี่ยวกับอันตรายของการเพิ่มผู้ใช้ลงในกลุ่มนักเทียบท่าใน Docker
การเพิ่มคำสั่ง sudo ทำให้สามารถเรียกใช้คำสั่งที่ไม่สามารถดำเนินการได้หากไม่มีสิทธิ์ root (เช่น การเชื่อมต่อกับ daemons) ในฐานะผู้ใช้ทั่วไปแต่การเพิ่ม sudo ทุกครั้งนั้นน่ารำคาญ
มาตรการรับมือและข้อควรระวัง
วิธีหนึ่งในการรันโดยไม่ใช้ sudo คือการทำให้ผู้ใช้อยู่ในกลุ่ม dokcer (คุณสามารถค้นหาตัวอย่างมากมายได้จาก googling) แต่ดูเหมือนว่าจะมีปัญหาด้านความปลอดภัย
การอ้างอิง: ความเสี่ยงเมื่อให้สิทธิ์คล้ายกับรูทในกลุ่มนักเทียบท่า (เอกสารทางการ)
หากคุณต้องการใช้นักเทียบท่าโดยไม่มี sudo newgrp
ว่ากันว่าเป็นการดีกว่าที่จะอยู่ในกลุ่มที่มีเนมสเปซหรือผู้ใช้เป็นการชั่วคราว
sudo groupadd docker # โดยที่ $USER คือชื่อผู้ใช้ของคุณ sudo usermod -aG docker $USER newgrp docker docker run สวัสดีชาวโลก
สวัสดีจากนักเทียบท่า!
ข้อความนี้แสดงว่าการติดตั้งของคุณทำงานได้อย่างถูกต้อง
เพื่อสร้างข้อความนี้ Docker ทำตามขั้นตอนต่อไปนี้:
1. ไคลเอนต์ Docker ติดต่อ Docker daemon
2. Docker daemon ดึงภาพ "hello-world" จาก Docker Hub
(เอเอ็มดี 64)
3. Docker daemon สร้างคอนเทนเนอร์ใหม่จากอิมเมจนั้นซึ่งรันไฟล์
ปฏิบัติการที่สร้างผลลัพธ์ที่คุณกำลังอ่านอยู่
4. Docker daemon สตรีมเอาต์พุตนั้นไปยังไคลเอนต์ Docker ซึ่งส่ง
ไปยังเทอร์มินัลของคุณ
หากต้องการลองสิ่งที่ทะเยอทะยานกว่านี้ คุณสามารถเรียกใช้คอนเทนเนอร์ Ubuntu ด้วย:
$ นักเทียบท่าเรียกใช้ -it ubuntu bash
แบ่งปันรูปภาพ ทำให้เวิร์กโฟลว์เป็นอัตโนมัติ และอื่นๆ ด้วย Docker ID ฟรี: https://hub.docker.com/
สำหรับตัวอย่างและแนวคิดเพิ่มเติม โปรดไปที่:
https://docs.docker.com/get-started/
ดิสโก้
รายการความคิดเห็น
ยังไม่มีความเห็น