docker.io 和 docker 有什么区别?

Pit*_*kos 51 process daemon docker

试图在这里学习 docker,但我对 docker.io 和 docker 之间的区别有点困惑。是docker.io守护程序服务器和docker客户端?为什么守护进程需要一直运行?

pet*_*haw 25

如果您使用的是 Ubuntu,并且您执行了

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

您将获得一个描述为“KDE3/GNOME2 应用程序的系统托盘”的包

另一方面,如果你这样做

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

您将获得一个描述为“Docker 使用在进程级别运行的高级 API 补充内核命名空间”的包。即每个人在说 Docker 时通常会想到的 Docker。

  • 答案是`docker`是一个托盘插件,而`docker.io`是Docker容器化软件。Ubuntu 已经有一个名为 `docker` 的包,所以他们不得不调用 Docker 容器软件 `docker.io` 的包 (20认同)
  • 这回答了我的问题,因为我很困惑 ubuntu 18.04 上的 `apt-get install docker` 没有给我 docker 应用程序,我查看了这两者之间的区别(`apt-cache search ^docker` 会告诉我我也是) (4认同)
  • 这是最好的答案,因为它实际上告诉你,如果你想安装容器软件,你应该使用`sudo apt-get install docker.io` (3认同)

sor*_*rin 17

docker-io是 Ubuntu 发行版使用 docker-engine的 deb 包名 是来自官方Docker Ubuntu 发行版的 deb 包名。

可能你想要,docker-engine因为 Ubuntu 太旧了,无法使用。截至今天,Ubuntu 有 1.6.2 并且 Docker 注册表有 1.12.0 !

就 Docker 而言,1.6.2 算作石器时代。

  • 现在 Xenial 的差异似乎已经缩小:Ubuntu 的 docker.io 1.12.3 与 Docker 的 docker-engine 1.13.1。 (4认同)
  • 一年后,“注意差距”:通过 docker(.com) 与 ubuntu pkg repo 提供的版本现在非常广泛,甚至难以比较(截至 2017 年年中,ubuntu 17.04 (zesty))。来自 docker.com 的“docker-engine”现在被拆分为“docker-ce”和“docker-ee”(分别是免费的“社区版”和付费的“企业版”)和“docker-compose”必须从 git 或通过`pip install docker-compose` 安装以获得正确的、对应的最新版本。目前,可悲的是,人们必须简单地避免使用 ubuntu 存储库来处理 docker 的所有事情。 (4认同)

dan*_*n12 9

Docker 是开发人员和系统管理员构建、发布和运行分布式应用程序的开放平台的名称。另一方面,Docker.io 是您在 Linux 操作系统(即 Ubuntu)中安装的软件包的名称。请在此处查看此链接。

就其工作方式而言,Docker Engine 由两部分组成:一个守护进程,一个管理所有容器的服务器进程,以及一个客户端,它充当守护进程的远程控制。我建议您尝试他们网站上的快速演示,位于此处

从可用性的角度来看,您可以在任何时候使用docker命令调用 Docker 客户端。

  • 是的,但这并没有说明两个不同的进程,即 docker 和 docker.io (5认同)

elb*_*ero 7

谈论 Debian 软件包:docker.io是 Debian/Ubuntu 提供的软件包名称,而docker是 docker.com 提供的软件包名称。

从技术上讲,这些包的构建方式不同:对于 ,docker.io构建依赖项是从 Debian 包中获取的,而对于docker,构建依赖项是在树内的vendor目录中。

如果您想了解更多详细信息,我在以下位置写了一篇详细的博客文章: https: //www.collabora.com/news-and-blog/blog/2018/07/04/docker-io-debian-package-back-to-生活/


Pit*_*kos 6

似乎docker只是一个指向docker.io的符号链接

> file $(which docker)
/usr/local/bin/docker: symbolic link to `/usr/bin/docker.io'
Run Code Online (Sandbox Code Playgroud)

所以我们可以假设 docker.io 既是守护进程又是客户端进程,只是用我假设的不同标志调用?!