พยายามที่จะเรียนรู้นักเทียบท่าที่นี่ แต่ฉันสับสนเล็กน้อยกับความแตกต่างระหว่าง docker.io และนักเทียบท่า คือdocker.ioเซิร์ฟเวอร์ภูตและdockerลูกค้าได้อย่างไร เหตุใด daemon จึงต้องเรียกใช้ตลอดเวลา
พยายามที่จะเรียนรู้นักเทียบท่าที่นี่ แต่ฉันสับสนเล็กน้อยกับความแตกต่างระหว่าง docker.io และนักเทียบท่า คือdocker.ioเซิร์ฟเวอร์ภูตและdockerลูกค้าได้อย่างไร เหตุใด daemon จึงต้องเรียกใช้ตลอดเวลา
คำตอบ:
docker-ioเป็นชื่อแพคเกจ deb ที่ใช้โดยการกระจาย Ubuntu
docker-engineคือชื่อแพคเกจ deb จากการกระจายอย่างเป็นทางการDocker Ubuntu
อาจเป็นไปได้ว่าคุณต้องการdocker-engineเพราะอูบุนตูนั้นเก่าเกินไปและไม่น่าใช้ ณ วันนี้ Ubuntu มี 1.6.2 และ Registry Docker มี 1.12.0!
ในแง่ของนักเทียบท่า 1.6.2 นับว่าเป็นยุคหิน
docker-engineจาก docker.com ตอนนี้แบ่งออกเป็นdocker-ceและdocker-ee(ฟรี "รุ่นชุมชน" & "องค์กรรุ่นจ่าย" ตามลำดับ) และdocker-composeต้องติดตั้งจาก git หรือผ่านpip install docker-composeเพื่อรับรุ่นล่าสุดที่ถูกต้องและสอดคล้องกัน ในปัจจุบันน่าเศร้าที่เราจะต้องหลีกเลี่ยง repos ของ Ubuntu สำหรับทุกสิ่งที่นักเทียบท่า
หากคุณใช้ Ubuntu และคุณทำ
sudo apt-get install docker
คุณจะได้รับแพ็คเกจอธิบายว่า "ถาดระบบสำหรับแอปพลิเคชัน KDE3 / GNOME2"
ถ้าคุณทำเช่นนั้น
sudo apt-get install docker.io
คุณจะได้รับแพคเกจอธิบายว่า "นักเทียบท่าเติมเต็มเนมสเปซเคอร์เนลด้วย API ระดับสูงซึ่งทำงานในระดับกระบวนการ" คือทุกคนที่นักเทียบท่ามักจะคิดถึงเมื่อพวกเขาพูดนักเทียบท่า
apt-get install dockerใน ubuntu 18.04 ไม่ได้ให้แอปพลิเคชันนักเทียบท่ากับฉันและฉันดูความแตกต่างระหว่างทั้งสองนั้น ( apt-cache search ^dockerจะบอกฉันด้วย)
dockerปลั๊กอินสำหรับถาดในขณะที่docker.ioเป็นซอฟต์แวร์สำหรับจัดเก็บข้อมูลนักเทียบท่า Ubuntu มีแพ็กเกจที่เรียกว่าdockerดังนั้นพวกเขาจึงต้องเรียกแพคเกจสำหรับซอฟต์แวร์ Docker containerdocker.io
sudo apt-get install docker.io
นักเทียบท่าเป็นชื่อของแพลตฟอร์มเปิดสำหรับนักพัฒนาและผู้ดูแลระบบเพื่อสร้างจัดส่งและเรียกใช้แอปพลิเคชันแบบกระจาย Docker.io เป็นชื่อของแพ็คเกจที่คุณติดตั้งใน Linux OS (เช่น Ubuntu) ดูที่ลิงค์นี้ที่นี่
ในแง่ของการทำงาน Docker Engine ประกอบด้วยสองส่วนคือ daemon กระบวนการเซิร์ฟเวอร์ที่จัดการคอนเทนเนอร์ทั้งหมดและไคลเอนต์ซึ่งทำหน้าที่เป็นรีโมทคอนโทรลสำหรับ daemon ฉันอยากจะแนะนำให้คุณลองสาธิตอย่างรวดเร็วพวกเขาได้ในเว็บไซต์ของพวกเขาอยู่ที่นี่
จากมุมมองการใช้งานคุณเรียกใช้ไคลเอ็นต์ Docker ทุกครั้งที่คุณใช้dockerคำสั่ง
ดูเหมือนว่านักเทียบท่าเป็นเพียงลิงก์สัญลักษณ์ไปยัง docker.io:
> file $(which docker)
/usr/local/bin/docker: symbolic link to `/usr/bin/docker.io'
ดังนั้นเราจึงสามารถสรุปได้ว่า docker.io เป็นทั้ง daemon และกระบวนการของไคลเอ็นต์เพียงแค่เรียกใช้ด้วยค่าสถานะที่แตกต่างกัน
การพูดเกี่ยวกับแพ็คเกจ Debian: docker.ioเป็นชื่อของแพ็คเกจที่จัดทำโดย Debian / Ubuntu ในขณะที่dockerเป็นชื่อของแพ็คเกจที่จัดทำโดย docker.com
ในทางเทคนิคแพคเกจเหล่านี้ถูกสร้างขึ้นแตกต่างกัน: สำหรับdocker.ioการพึ่งพาการสร้างจะถูกดึงมาจากแพคเกจ Debian ในขณะที่dockerการพึ่งพาการสร้างเป็นในต้นไม้ในvendorไดเรกทอรี
หากคุณต้องการรายละเอียดเพิ่มเติมฉันเขียนโพสต์บล็อกแบบละเอียดที่: https://www.collabora.com/news-and-blog/blog/2018/07/04/docker-io-debian-package-back-to- ชีวิต/