以前,要安装docker,我会使用
apt-get install docker.io然而,我最近注意到了安装docker的文档,它使用docker-ce。我试着找出两者之间的区别,但一无所获。docker.io与docker-ce有什么关系?
发布于 2017-07-11 08:44:50
Docker二进制文件的较早版本称为docker或docker-engine或docker-io
docker -io包仍然是Debian/Ubuntu在其official repos上提供的docker版本的名称。
docker-ce是由docker.com直接提供的认证版本,也可以是built from source。
在Debian/Ubuntu平台上使用docker-io的主要原因是为了避免与docker系统托盘二进制文件的名称冲突。
http://manpages.ubuntu.com/manpages/precise/man1/docker.1.html
Docker有一个企业版(EE)和一个免费的社区版(CE)
在安装Docker Community Edition (来自docker.com的docker-ce)之前,您可能需要删除较旧的二进制文件。
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-engineUbuntu/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])docker-ce binaries将倾向于最新版本,并包括docker-ce-cli。
发布于 2019-08-27 23:55:35
提防docker-ce
公认的答案是不复杂的。
docker-ce由docker.com提供,docker.io由Debian提供。
从表面上看,这意味着你可以立即安装docker.io,而对于docker-ce,你必须事先从docker.com附加一个外部存储库。
然而,更重要的是,尽管这两个包都提供了Docker的正确发布版本,但它们具有完全不同的内部结构
docker.io采用Debian (或Ubuntu)的方式: independently.docker-ce每个外部依赖项都是一个单独的包,可以而且将会被更新。这样做:在构建之前,所有的依赖项都会被拉入树中,然后整个过程就会形成一个单独的包。因此,您始终可以一次使用其所有依赖项来更新docker。后一种方法的问题是,它与Debian/Ubuntu试图做的大部分事情背道而驰。
如果每个人都像docker-ce那样做...
...you在你的系统上有174个版本的许多库,这不仅消耗了大量的内存,而且还使得你基本上不可能决定你是否拥有7.6.5版本的库XYZ,其中存在可怕的安全漏洞。
更不用说关闭该漏洞(或您拥有的所有109个实例)。
更糟糕的是,174个版本中的一个很可能是三年前的XYZ版本5.4.3,它有另一个非常不同但同样巨大的安全漏洞,世界早已忘记了这个漏洞,但它仍然会愉快地存在于您的系统中。
以下是一些备注:
docker.io是“过时的”。这是因为它大约有一年没有维护过。从2019年8月起,情况就不再是这样了。docker-ce转向使用docker.io --而且可能再也不会回来了。编辑:正如BobHy在评论中指出的那样,docker-ce方法也有一个优势:它与XYZ库不太可能存在兼容性问题。你必须权衡你的风险。
发布于 2021-12-20 00:51:35
docker.io
这是由Linux发行版提供的。他们自己编译上游docker引擎,并添加一些特定于发行版的代码,主要是在启动脚本中。之所以选择这个名称,是因为docker已经被一个不相关的项目采用。此外,Debian目前还有其他一些相关的包:
docker compose - separately.
docker-ce
这是社区版,也就是Docker公司的OSS版本。这是大多数人在Linux上安装docker时所想到的。此外,docker repos上目前提供了以下内容:
Docker's website提供了安装docker-ce的说明。
docker-ee
这是企业版,是Docker Inc. .的一部分,被卖给了Mirantis。这个版本有一些额外的特性(自从拆分后我并没有密切关注它),但安装这个版本的主要两个原因是供应商支持(付费)和使用它作为其他商业产品的基础,如UCP和DTR,这是在Swarm/Kubernetes和注册服务器之上的UI。除非你一直在与Mirantis销售部门合作,并且有一个许可证密钥,否则我认为没有任何理由安装这个版本。
在docker.io和docker-ce之间选择
主要决定是从Linux发行版还是直接从docker Inc.安装Docker的OSS版本。需要考虑的几点:
DOCKER_HOST=ssh://you@example.com docker ps)上访问docker,则需要使用docker-ce-cli软件包。对我来说,如果您要设置一台专用机器来运行容器,请使用docker-ce。虽然如果你只是偶尔运行一个容器,不要遵循Docker Inc. .在上游做的事情,而是使用机器来完成许多其他任务,使用docker.io可以简化你的工作流。
https://stackoverflow.com/questions/45023363
复制相似问题