พยายามที่จะเรียนรู้นักเทียบท่าที่นี่ แต่ฉันสับสนเล็กน้อยกับความแตกต่างระหว่าง 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- ชีวิต/