与docker-ce和docker-ee相关的docker.io是什么?

时间:2017-07-11 00:00:16

标签: docker ubuntu-16.04 apt-get

以前,要安装docker,我会使用

apt-get install docker.io

但是,我最近注意到安装docker的文档,它使用docker-ce。我试图找到两者之间的区别,但是已经空了。与docker-ce有关的docker.io是什么?

2 个答案:

答案 0 :(得分:57)

提防docker-ce

接受的答案很复杂。

docker-ce由docker.com提供, docker.io由Debian提供。

从表面上看,这意味着您可以立即安装docker.io,而对于docker-ce,则必须事先从docker.com附加外部存储库。

但是,更重要的是,尽管两个软件包都提供了正确发布的Docker版本,但它们的内部结构却非常不同:

  • docker.io是以Debian(或Ubuntu)方式执行的:每个外部依赖项都是一个单独的程序包,可以并且将独立更新。
  • docker-ce使用Golang方式:在构建之前将所有依赖项都提取到 source 中,然后整个项目形成一个单独的包。因此,您始终会同时更新docker及其所有依赖项。

后一种方法的问题在于,它与Debian / Ubuntu试图做的很多事情背道而驰。

如果每个人都像docker-ce那样做...

...您的系统上将有174个版本的许多库,这些库不仅消耗大量内存,而且它们基本上使您无法确定是否具有带有可怕的安全漏洞在其中。
更不用说关闭该漏洞(或您拥有的所有109个实例)。

更糟糕的是,三年前174个版本中的一个可能是XYZ的5.4.3版本,它具有另一个非常不同的版本,但是就像安全漏洞一样,这个世界早已被人们遗忘了,但是这将会仍然幸福地存在于您的系统上。

一些评论:

  • 许多网页称docker.io为“过时”。那是因为它没有维护大约一年。截至2019年8月,情况已不再如此。
  • 我今天here学到了所有这一切,现在将从使用docker-ce切换为使用docker.io -大概再也不会回来了。
  • Debian / Ubuntu包装系统如此复杂是有原因的。有充分的理由。

答案 1 :(得分:49)

旧版本的Docker被称为docker或docker-engine或docker.io

docker-io包是Debian / Ubuntu用于官方docker版本的名称。

主要原因是为了避免名称与Ubuntu docker system-tray binary冲突。

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

Docker现在有企业版(EE)和免费社区版(CE)

在安装Docker Community Edition之前,您需要删除较旧的二进制文件。

的Centos / RHL:

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

$ sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

的Ubuntu / Debian的:

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

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