ความแตกต่างระหว่าง docker.io และนักเทียบท่าคืออะไร?


30

พยายามที่จะเรียนรู้นักเทียบท่าที่นี่ แต่ฉันสับสนเล็กน้อยกับความแตกต่างระหว่าง docker.io และนักเทียบท่า คือdocker.ioเซิร์ฟเวอร์ภูตและdockerลูกค้าได้อย่างไร เหตุใด daemon จึงต้องเรียกใช้ตลอดเวลา

คำตอบ:


12

docker-ioเป็นชื่อแพคเกจ deb ที่ใช้โดยการกระจาย Ubuntu docker-engineคือชื่อแพคเกจ deb จากการกระจายอย่างเป็นทางการDocker Ubuntu

อาจเป็นไปได้ว่าคุณต้องการdocker-engineเพราะอูบุนตูนั้นเก่าเกินไปและไม่น่าใช้ ณ วันนี้ Ubuntu มี 1.6.2 และ Registry Docker มี 1.12.0!

ในแง่ของนักเทียบท่า 1.6.2 นับว่าเป็นยุคหิน


4
ความแตกต่างดูเหมือนจะแคบลงในขณะนี้ใน Xenial: นักเทียบท่าของ Ubuntu 1.12.3 เทียบกับนักเทียบท่าเครื่องยนต์นักเทียบท่า 1.13.1
Pierz

@Pierz แต่ ubuntu จะอัพเกรดภายในรุ่นเดียวกัน ก่อนหน้า 18.04 ความแตกต่างอาจขยายอีกครั้ง)
nafg

3
หนึ่งปีต่อมา "mind the gap": รุ่นที่มีให้ผ่านทาง docker (.com) เทียบกับ ubuntu pkg repo ตอนนี้กว้างมากจนยากที่จะเปรียบเทียบ (ตั้งแต่กลางปี ​​2017, ubuntu 17.04 (zesty)) สิ่งที่ถูกเรียกdocker-engineจาก docker.com ตอนนี้แบ่งออกเป็นdocker-ceและdocker-ee(ฟรี "รุ่นชุมชน" & "องค์กรรุ่นจ่าย" ตามลำดับ) และdocker-composeต้องติดตั้งจาก git หรือผ่านpip install docker-composeเพื่อรับรุ่นล่าสุดที่ถูกต้องและสอดคล้องกัน ในปัจจุบันน่าเศร้าที่เราจะต้องหลีกเลี่ยง repos ของ Ubuntu สำหรับทุกสิ่งที่นักเทียบท่า
Michael

8

หากคุณใช้ Ubuntu และคุณทำ

sudo apt-get install docker

คุณจะได้รับแพ็คเกจอธิบายว่า "ถาดระบบสำหรับแอปพลิเคชัน KDE3 / GNOME2"

ถ้าคุณทำเช่นนั้น

sudo apt-get install docker.io

คุณจะได้รับแพคเกจอธิบายว่า "นักเทียบท่าเติมเต็มเนมสเปซเคอร์เนลด้วย API ระดับสูงซึ่งทำงานในระดับกระบวนการ" คือทุกคนที่นักเทียบท่ามักจะคิดถึงเมื่อพวกเขาพูดนักเทียบท่า


สิ่งนี้ไม่ตอบคำถาม
โตโต้

1
สิ่งนี้จะตอบคำถามเช่น "อะไรคือความแตกต่าง ... ?"?
Pierre.Vriens

4
นี้ตอบคำถามของฉันเพราะฉันสับสนว่าapt-get install dockerใน ubuntu 18.04 ไม่ได้ให้แอปพลิเคชันนักเทียบท่ากับฉันและฉันดูความแตกต่างระหว่างทั้งสองนั้น ( apt-cache search ^dockerจะบอกฉันด้วย)
eli

5
คำตอบคือdockerปลั๊กอินสำหรับถาดในขณะที่docker.ioเป็นซอฟต์แวร์สำหรับจัดเก็บข้อมูลนักเทียบท่า Ubuntu มีแพ็กเกจที่เรียกว่าdockerดังนั้นพวกเขาจึงต้องเรียกแพคเกจสำหรับซอฟต์แวร์ Docker containerdocker.io
theferrit32

2
นี่เป็นคำตอบที่ดีที่สุดเพราะจริง ๆ แล้วบอกคุณว่าถ้าคุณต้องการติดตั้งซอฟต์แวร์คอนเทนเนอร์คุณควรใช้sudo apt-get install docker.io
JacKeown

6

นักเทียบท่าเป็นชื่อของแพลตฟอร์มเปิดสำหรับนักพัฒนาและผู้ดูแลระบบเพื่อสร้างจัดส่งและเรียกใช้แอปพลิเคชันแบบกระจาย Docker.io เป็นชื่อของแพ็คเกจที่คุณติดตั้งใน Linux OS (เช่น Ubuntu) ดูที่ลิงค์นี้ที่นี่

ในแง่ของการทำงาน Docker Engine ประกอบด้วยสองส่วนคือ daemon กระบวนการเซิร์ฟเวอร์ที่จัดการคอนเทนเนอร์ทั้งหมดและไคลเอนต์ซึ่งทำหน้าที่เป็นรีโมทคอนโทรลสำหรับ daemon ฉันอยากจะแนะนำให้คุณลองสาธิตอย่างรวดเร็วพวกเขาได้ในเว็บไซต์ของพวกเขาอยู่ที่นี่

จากมุมมองการใช้งานคุณเรียกใช้ไคลเอ็นต์ Docker ทุกครั้งที่คุณใช้dockerคำสั่ง


4
แต่ก็ใช่ว่าจะไม่พูดอะไรเกี่ยวกับทั้งสองกระบวนการที่แตกต่างกันกล่าวคือนักเทียบท่าและ docker.io
Pithikos

3

ดูเหมือนว่านักเทียบท่าเป็นเพียงลิงก์สัญลักษณ์ไปยัง docker.io:

> file $(which docker)
/usr/local/bin/docker: symbolic link to `/usr/bin/docker.io'

ดังนั้นเราจึงสามารถสรุปได้ว่า docker.io เป็นทั้ง daemon และกระบวนการของไคลเอ็นต์เพียงแค่เรียกใช้ด้วยค่าสถานะที่แตกต่างกัน


แค่นั้นแหละ docker.io ใช้ไบนารีเดียวกันสำหรับทั้งไคลเอนต์และเซิร์ฟเวอร์ / daemon
Rob Wells

2

การพูดเกี่ยวกับแพ็คเกจ 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- ชีวิต/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.