docker.io เกี่ยวข้องกับ docker-ce และ docker-ee คืออะไร?


119

ก่อนหน้านี้ในการติดตั้งนักเทียบท่าฉันจะใช้

apt-get install docker.io

อย่างไรก็ตามฉันเพิ่งสังเกตเห็นเอกสารสำหรับการติดตั้ง Docker และมันใช้ docker-ce ฉันพยายามค้นหาความแตกต่างระหว่างทั้งสอง แต่ก็ว่างเปล่า docker.io เกี่ยวข้องกับ docker-ce คืออะไร?


1
@zerkms ฉันสับสนเพราะเว็บไซต์ Docker อย่างเป็นทางการไม่มีการกล่าวถึง docker.io เสื่อมราคาหรือเปล่า
Will Parzybok

1
docker.ioแพ็คเกจได้รับการดูแลโดยนักพัฒนา ubuntu นักพัฒนา Ubuntu ไม่มีส่วนเกี่ยวข้องกับ "เว็บไซต์นักเทียบท่าอย่างเป็นทางการ" ดังนั้นความจริงแล้วเว็บไซต์นักเทียบท่าไม่ได้อ้างถึงมันหมายความว่าไม่มีอะไร
zerkms

1
docker.io เป็นปัจจุบันหรือไม่
Will Parzybok

1
ตรวจสอบและดู? packages.ubuntu.com/...
zerkms

ตอนนี้ใช้งานได้โดยสิ้นเชิงอีกครั้ง!
thoni56

คำตอบ:


73

ไบนารี Docker เวอร์ชันเก่าเรียกว่านักเทียบท่าหรือนักเทียบท่าเครื่องยนต์หรือนักเทียบท่า - io

นักเทียบท่า-ioแพคเกจยังคงเป็นชื่อที่ใช้โดย Debian / Ubuntu สำหรับการเปิดตัวนักเทียบท่าที่มีให้ภายในของพวกเขาRepos อย่างเป็นทางการ

นักเทียบท่า-CEเป็นรุ่นที่ได้รับการรับรองให้โดยตรงโดยdocker.comและยังสามารถสร้างขึ้นมาจากแหล่งที่มา

เหตุผลหลักในการใช้ชื่อ docker-io บนแพลตฟอร์ม Debian / Ubuntu คือเพื่อหลีกเลี่ยงความขัดแย้งของชื่อกับไบนารีถาดระบบของนักเทียบท่า

http://manpages.ubuntu.com/manpages/precise/man1/docker.1.html

Docker มีเวอร์ชันสำหรับองค์กร (EE) และเวอร์ชัน Community Edition ฟรี (CE)

ก่อนติดตั้ง Docker Community Edition (docker-ce จาก docker.com) คุณอาจต้องลบไบนารีรุ่นเก่าออก

Centos / RHL:

https://docs.docker.com/engine/installation/linux/docker-ce/centos/

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

อูบุนตู / Debian:

https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

$ sudo apt-get remove docker docker-engine docker.io containerd runc

การเปรียบเทียบแบบแห้งบน Ubuntu:

$ sudo apt-get install docker.io --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  bridge-utils cgroupfs-mount containerd pigz runc ubuntu-fan
Suggested packages:
  ifupdown aufs-tools debootstrap docker-doc rinse zfs-fuse | zfsutils
The following NEW packages will be installed:
  bridge-utils cgroupfs-mount containerd docker.io pigz runc ubuntu-fan
0 upgraded, 7 newly installed, 0 to remove and 70 not upgraded.
Inst pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Inst bridge-utils (1.5-15ubuntu1 Ubuntu:18.04/bionic [amd64])
Inst cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Inst runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst containerd (1.2.6-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst docker.io (18.09.7-0ubuntu1~18.04.4 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst ubuntu-fan (0.12.10 Ubuntu:18.04/bionic [all])
Conf pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Conf bridge-utils (1.5-15ubuntu1 Ubuntu:18.04/bionic [amd64])
Conf cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Conf runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf containerd (1.2.6-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf docker.io (18.09.7-0ubuntu1~18.04.4 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf ubuntu-fan (0.12.10 Ubuntu:18.04/bionic [all])

$ sudo apt-get install docker-ce --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce-cli libltdl7 pigz
The following NEW packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli libltdl7 pigz
0 upgraded, 7 newly installed, 0 to remove and 70 not upgraded.
Inst pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Inst aufs-tools (1:4.9+20170918-1ubuntu1 Ubuntu:18.04/bionic [amd64])
Inst cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Inst containerd.io (1.2.10-3 Docker CE:bionic [amd64])
Inst docker-ce-cli (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst docker-ce (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst libltdl7 (2.4.6-2 Ubuntu:18.04/bionic [amd64])
Conf pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Conf aufs-tools (1:4.9+20170918-1ubuntu1 Ubuntu:18.04/bionic [amd64])
Conf cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Conf containerd.io (1.2.10-3 Docker CE:bionic [amd64])
Conf docker-ce-cli (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf docker-ce (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf libltdl7 (2.4.6-2 Ubuntu:18.04/bionic [amd64])

ไบนารีนักเทียบท่า-CEจะมีแนวโน้มที่จะเป็นรุ่นล่าสุดและรวมถึงนักเทียบท่า-CE-CLI


1
@Ivolmar ขอบคุณมากดังนั้นมันจะโง่ที่จะใช้ docker.io กับหนึ่งในอันใหม่กว่านี้หรือไม่?
Will Parzybok

3
@WillParzybok ถูกต้อง. ขึ้นอยู่กับเวอร์ชันของ Debian หรือ Ubuntu คุณควรจะสามารถติดตั้ง CE เวอร์ชันใหม่และลบไบนารีเวอร์ชันเก่าได้
lvolmar

2
ใน Ubuntu 19.04 เวอร์ชัน docker.io จะเหนือกว่า docker-ce เล็กน้อย (18.09.5 v. 18.06.3) โดยทั่วไปแล้วการเผยแพร่ของผู้ขายและ ppas จะนำหน้าการเปิดตัวของ Ubuntu ความคิดเห็นชื่นชมว่าคำแนะนำในการใช้ ce ผ่าน io ยังคงใช้ได้หรือไม่
Reece

7
2019-May-21 สับสน ... จะใช้อะไรบน Ubuntu 18.04? apt-get install docker.ioดูสบายกว่าการทำ 10 ขั้นตอนขึ้นไปเพื่อติดตั้ง docker-ce :(
Wlad

1
เพิ่งทำapt install docker.ioและได้รับDocker version 18.09.2, build 6247962... แล้วข้อตกลงกับนักเทียบท่าคืออะไร? ฉันใช้สิ่งที่ Ubuntu ให้ฉัน
Wlad

120

ระวังนักเทียบท่า

คำตอบที่ยอมรับนั้นซับซ้อน

docker-ceจัดทำโดย docker.com docker.ioโดย Debian

บนพื้นผิวหมายความว่าคุณสามารถติดตั้งได้ทันทีdocker.ioในขณะที่docker-ceคุณต้องแนบที่เก็บภายนอกจาก docker.com ก่อนแฮนด์

อย่างไรก็ตามที่สำคัญกว่านั้นแม้ว่าแพ็คเกจทั้งสองจะมี Docker เวอร์ชันที่วางจำหน่ายอย่างเหมาะสม แต่ก็มีโครงสร้างภายในที่แตกต่างกันมาก :

  • docker.ioเป็นวิธี Debian (หรือ Ubuntu): การพึ่งพาภายนอกแต่ละรายการเป็นแพ็คเกจแยกต่างหากที่สามารถและจะได้รับการอัปเดตอย่างอิสระ
  • docker-ceมันจะเป็นวิธีที่ golang: อ้างอิงทั้งหมดจะถูกดึงเข้าไปในแหล่งที่มาของต้นไม้ก่อนที่จะสร้างและรูปแบบสิ่งที่ทั้งแพคเกจเดียวหลังจากนั้น ดังนั้นคุณจึงอัปเดตนักเทียบท่าด้วยการอ้างอิงทั้งหมดพร้อมกันเสมอ

ปัญหาของแนวทางหลังคือมันขัดกับสิ่งที่ Debian / Ubuntu พยายามทำมาก

ถ้าทุกคนทำแบบdocker-ceนี้ ...

... คุณจะมีไลบรารีจำนวน 174 เวอร์ชันในระบบของคุณซึ่งไม่เพียง แต่ใช้หน่วยความจำจำนวนมาก แต่ยังทำให้เป็นไปไม่ได้ที่จะตัดสินใจว่าคุณมีไลบรารี XYZ เวอร์ชัน 7.6.5 ที่มีช่องโหว่ด้านความปลอดภัยที่น่ากลัวอยู่บ้างพวกเขา
นับประสาปิดช่องโหว่นั้น (หรือทั้งหมด 109 อินสแตนซ์ที่คุณมี)

ที่แย่กว่านั้นหนึ่งใน 174 เวอร์ชันน่าจะเป็นเวอร์ชัน 5.4.3 ของ XYZ เมื่อสามปีที่แล้วซึ่งมีอีกเวอร์ชันที่แตกต่างกันมาก แต่ก็เหมือนกับช่องโหว่ด้านความปลอดภัยที่อ้าปากค้างที่โลกลืมไปนานแล้ว แต่จะยังคงมีอยู่อย่างมีความสุข ในระบบของคุณ

ข้อสังเกตบางประการ:

  • หน้าเว็บจำนวนมากเรียกว่าdocker.io"ล้าสมัย" นั่นเป็นเพราะมันไม่ได้รับการดูแลเป็นเวลาประมาณหนึ่งปี ในเดือนสิงหาคม 2019 จะไม่เป็นเช่นนั้นอีกต่อไป
  • ฉันได้เรียนรู้ทั้งหมดนี้ในวันนี้ที่นี่และตอนนี้จะเปลี่ยนจากใช้docker-ceเป็นใช้docker.io- และคงจะไม่กลับไปอีก
  • มีเหตุผลว่าทำไมระบบบรรจุภัณฑ์ Debian / Ubuntu จึงซับซ้อนมาก เหตุผลที่ดี

4
พบคำตอบนี้หลังจาก docker-ce ใน 2 โหนดของฉันติดอยู่ในขณะที่โหนดอื่นที่มี docker.io รอดชีวิตในขณะที่อัปเกรด apt
Jingshao Chen

3
สิ่งนี้ทำให้ฉันรู้สึกสบายใจกับแพ็คเกจ docker.io ของ Debian / Ubuntu ที่ชื่นชอบ ยิ่งไปกว่านั้นอยู่apt installห่างออกไปเพียงครั้งเดียวในขณะที่นักเทียบท่าฉันต้องไปที่เอกสาร Dockerเพื่อค้นหาขั้นตอนการติดตั้ง
Wlad

2
คุณอาจต้องการพูดถึงผลกระทบด้านความปลอดภัยของการใช้ docker.io - คุณจะไม่ได้รับแพตช์ความปลอดภัยทันทีที่ไม่มีการบำรุงรักษาอีกครั้งและตราบใดที่คุณไม่ต้องพึ่งพาผู้ดูแลอย่างถูกต้องในการแบ็คพอร์ตแพตช์ความปลอดภัยทุกตัว
Benni

2
ข้อดีอย่างหนึ่งของ docker-ce คือคุณได้รับการรับรองรุ่นคุณจะได้รับคำสัญญาจากทีมนักเทียบท่าว่าแพ็กเกจจะทำงานร่วมกับการอ้างอิงที่รวมไว้ สันนิษฐานว่ามีนิ้วชี้น้อยลงหากคุณมีปัญหา ผู้ดูแลเดเบียนของ docker.io รับรองว่านักเทียบท่าทำงานบนเวอร์ชันล่าสุดของแพ็คเกจที่เกี่ยวข้องทั้งหมดหรือไม่ มีทีมงานนักเทียบท่าที่ทำผลงานได้ดีพอของบรรจุภัณฑ์การทดสอบของพวกเขาที่ใด ๆทีมอื่น ๆ สามารถรับรองการเปิดตัวหรือไม่? ที่นี่ไม่มีทางออกที่ "ดีที่สุด" มีเพียงแค่ความสมดุลของความเสี่ยงและคุณต้องเลือกว่าความเสี่ยงใดสำคัญกับคุณมากกว่า
BobHy

@ Bob ฉันเห็นด้วยมันเป็นการแลกเปลี่ยน อย่าลืมเปลี่ยนไปใช้docker.ioในระบบการผลิตของคุณที่ไม่มีกิจกรรมการพัฒนาหากและเมื่อDocker Inc.หยุดทำงานหรือหยุดทำการอัปเดต (!) เป็นประจำdocker-ceด้วยเหตุผลอื่น Debian มีชื่อเสียงที่มั่นคงในแง่นี้แม้ว่าdocker.ioควรจะหยุดรับการอัปเดตอีกครั้ง แต่ไลบรารีจำนวนมากก็ยังคงอยู่
Lutz Prechelt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.