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

Wil*_*bok 72 ubuntu apt-get docker ubuntu-16.04

以前,要安装docker我会用

apt-get install docker.io
Run Code Online (Sandbox Code Playgroud)

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

lvo*_*mar 61

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

docker-io包是Debian/Ubuntu用于官方docker发布的名称.

主要原因是避免与Ubuntu docker system-tray二进制文件发生名称冲突.

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
Run Code Online (Sandbox Code Playgroud)

Ubuntu的/ Debian的:

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

$ sudo apt-get remove docker docker-engine docker.io
Run Code Online (Sandbox Code Playgroud)

  • 2019年5月21日感到困惑...在Ubuntu 18.04上使用什么?apt-get install docker.io看起来比安装docker-ce的10个步骤或更多步骤要舒服得多:( (6认同)
  • @WillParzybok正确.根据您的Debian或Ubuntu版本,您应该能够安装新的CE版本并删除旧版本的二进制文件 (2认同)
  • 在Ubuntu 19.04中,docker.io版本稍微领先于docker-ce(18.09.5 v.18.06.3)。供应商版本和ppas通常比Ubuntu版本更早。对于使用ce over io的建议是否仍然适用的意见表示赞赏。 (2认同)

Lut*_*elt 36

警惕docker-ce

接受的答案很复杂。

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

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

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

  • docker.io做到了Debian(或Ubuntu)方式:每个外部依赖项都是一个单独的软件包,可以并且将独立更新。
  • docker-ce用Golang的方式做到这一点:在构建之前将所有依赖项都拉到树中,然后整个过程形成一个单独的包。因此,您始终会同时更新docker及其所有依赖项。

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

如果每个人都照做的话docker-ce...

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

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

一些说明:

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

  • docker-ce 的优势之一是您可以获得经过认证的版本,您可以得到 docker 团队的承诺,即该软件包将与捆绑的依赖项一起使用。想必,如果你遇到问题,相互指责的情况就会减少。docker.io 的 debian 维护者是否*证明* docker 在所有依赖包的最新版本上运行?docker 团队是否在打包测试方面做得足够好,以至于*任何*其他团队都可以认证发布?这里没有“最佳”解决方案,只有风险平衡,您必须选择哪些风险对您更重要。 (6认同)
  • 这让我考虑最喜欢 Debian/Ubuntu 的 docker.io 包。更重要的是,它只是一个“apt install”,而对于 docker-ce 我总是必须去 [Docker 文档](https://docs.docker.com/install/linux/docker-ce/ubuntu/) 来查看上安装步骤。 (3认同)
  • @BobHy 我同意,这是一个权衡。只是,当 _Docker Inc._ 耗尽或停止对“docker-ce”进行定期(!)更新时,不要忘记在没有开发活动的生产系统中切换到“docker.io”。原因。Debian 在这方面享有盛誉:即使“docker.io”再次停止获取更新,许多库仍然会停止。 (3认同)
  • 在我的2个节点中docker-ce卡住后找到了这个答案,而另一个docker.io节点在apt升级中幸存下来。 (2认同)
  • 您可能想提及使用 docker.io 的安全隐患 - 一旦它再次停止维护,您将不会收到安全补丁,甚至只要不是您依赖维护人员正确向后移植每个安全补丁。 (2认同)
  • 一些有力的证据表明,至少 Ubuntu 现在“非常”快地发布新版本:Docker 24.0.5 [于 2023 年 7 月 17 日发布](https://docs.docker.com/engine/release-notes/24.0 /),Ubuntu [于 2023 年 8 月 7 日通知](https://bugs.launchpad.net/ubuntu/+source/docker.io-app/+bug/2030500),[软件包于 2023 年准备就绪- 08-17](https://github.com/canonical/docker.io-app/releases/tag/debian%2F24.0.5-0ubuntu1),然后[于 2023-08-23 向后移植到 22.04](https:// /code.launchpad.net/ubuntu/+source/docker.io-app)。**从_upstream_ 到_LTS_ 版本大约需要一个月!** (2认同)

BMi*_*tch 24

docker.io

这是由 Linux 发行版提供的。他们自己编译上游 docker 引擎,并添加一些特定于发行版的代码,主要是启动脚本。之所以选择这个名称,是因为docker已被一个不相关的项目占用。此外,Debian目前还有其他一些相关的软件包:

  • docker-doc:单独打包的文档。
  • rootlesskit:用于在没有 root 用户的情况下运行 docker 引擎。
  • docker-compose:自从 Docker Inc 打包 compose 以来,这是一个很好的选择,但是随着用 Go 编写并直接包含在 docker CLI 中的 compose 版本 2 的出现,这种情况正在发生变化。
  • docker-registry:注册服务器的独立打包,尽管尚不清楚用例,因为几乎每个人都将其作为映像中的容器运行registry:2
  • 凭证助手:有多个用于这些的软件包,如果您向云供应商进行注册表身份验证,这些软件包会很有用。

docker-ce

这是社区版,又名 Docker Inc. 的 OSS 版本。这是大多数人在 Linux 上安装 docker 时想到的。此外,目前 docker 存储库上还提供以下内容:

  • docker-ce-cli:您可以只安装命令行而不安装引擎,并使用它来远程访问其他主机上的docker引擎。
  • docker-ce-rootless-extras:在最新版本的 docker 中,我们做了很多努力来启用无根支持,因此您可以以用户身份而不是 root 身份运行引擎。
  • docker-scan-plugin:这是一个可用于图像的漏洞扫描器。

安装说明可从Docker 网站docker-ce获取。

docker-ee

这是企业版,是 Docker Inc. 的一部分,已被出售给 Mirantis。有(自从分裂以来我没有密切关注)一些额外的功能编译到这个版本中,但是安装这个版本的两个主要原因是供应商支持(付费)并将其用作其他商业产品的基础,例如UCP 和 DTR,它们是 Swarm/Kubernetes 和注册表服务器之上的 UI。除非您一直与 Mirantis 销售部门合作并拥有许可证密钥,否则我认为没有任何理由安装此版本。

在 docker.io 和 docker-ce 之间进行选择

主要决定是从 Linux 发行版安装 OSS 版本的 docker 还是直接从 Docker Inc. 安装。需要考虑以下几点:

  • https://docs.docker.com上的文档将重点关注 docker-ce。
  • Docker Inc. 的问题支持将要求您安装他们的版本。如果您是打包产品的开发人员,并且您只想支持自己的打包,那么这才是公平的。
  • 补丁和新版本将在 docker.io 之前从 docker-ce 提供。这对于时间敏感的安全问题可能很重要。
  • 安装 docker-ce 需要在您的sources.list中添加另一个存储库,这是一个值得信任的供应商,以及一个要随每个补丁更新的软件包列表。
  • 如果您只需要 CLI 以便可以访问远程计算机上的 docker(例如DOCKER_HOST=ssh://you@example.com docker ps),那么您将需要使用该docker-ce-cli软件包。

对我来说,如果您要设置一台专用机器来运行容器,请选择docker-ce. 虽然如果您只是偶尔运行一个容器,不遵循 Docker Inc. 在上游所做的事情,并使用该机器执行许多其他任务,那么使用docker.io可以简化您的工作流程。


F1L*_*nux 9

Docker Enterprise现在是Mirantis Kubernetes Engine

\n

其他答案是在Docker 将其企业资产出售给Mirantis之前写的。这次收购带来了巨大的变化......

\n

如果您现在访问“企业版”的链接- https://docs.docker.com/ee/ - 您将找到 oogatz。那是因为“ Docker Enterprise ”现在是“ Mirantis Kubernetes Engine”

\n

Swarm 的未来:

\n

随着 Kubernetes 的普及和 Mirantis 购买 Docker 的企业资产,Swarm的未来受到质疑。然而,集群容器编排的未来似乎更加确定,因为根据这篇博客文章,它是 Mirantis Kubernetes Engine v3.5 中的一个主要功能,其中指出:

\n
\n

...客户已经说过 \xe2\x80\x94,其中许多人对使用 Swarm 而不是 Kubernetes 进行容器编排感到完全满意。考虑到\n这一点,我们\xe2\x80\x99很高兴宣布仅 Swarm 模式:一个新的\nMirantis Kubernetes Engine 配置选项,该\n平台专门用于 Swarm 编排和 Docker 容器。

\n
\n

因此,出于企业规划的目的, Swarm在 Kubernetes 世界中似乎有未来。

\n

但这并不是 Mirantis 的全部变化......

\n

码头工人CE现在(大部分)由第三方开发:

\n

自 20201209 年v20.10 版本起生效,Docker CE现在是两个独立 GitHub 项目的产品

\n\n

因此,从 v20.10 开始,Moby 项目将承担开发Docker CE的繁重工作,而 Mirantis 则致力于将Mirantis Kubernetes Engine货币化货币化。不要抱怨:Mirantis 毕竟是一家企业,他们必须盈利;那里没有什么惊喜。

\n

然而Docker CEdocker-cli的部分仍然由 Docker 开发。显然docker-cli部分很有趣,并且他们将其保留在内部......

\n

结论:

\n

在 IBM 收购 Red Hat 和CentOS被淘汰之后,我想依赖 Docker 容器化的组织也会对Mirantis 收购后Docker CE的未来产生类似的担忧。看来莫比项目可以如果 Mirantis 拉走他们的 (5) 开发人员,但它最终会导致 Docker 的分叉,并导致开发走上不同的道路。

\n

Red Hat 雇佣了 CentOS 项目人员(你不知道吗?),因此他们总是有责任遵循 Red Hat 给他们的指示。我不知道 Docker 是否雇用或以其他方式支付剩余的 22/27 Moby 开发人员费用。鉴于 Mirantis 面临着使 Docker 成为一项有利可图的收购的商业压力,Docker 格局未来可能会发生进一步的重大变化,这使得针对当前格局的商业决策规划具有挑战性……

\n