以前,要安装docker,我会使用
apt-get install docker.io
但是,我最近注意到安装docker的文档,它使用docker-ce。我试图找到两者之间的区别,但是已经空了。与docker-ce有关的docker.io是什么?
答案 0 :(得分:57)
接受的答案很复杂。
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月,情况已不再如此。docker-ce
切换为使用docker.io
-大概再也不会回来了。答案 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