Docker守护程序需要什么?

Docker守护程序需要什么?,docker,Docker,这是Docker架构: 我无法理解为什么需要docker守护进程。客户很好。客户端只需使用Unix套接字访问守护进程。它可以使用TCP,但我注意到的是,客户端和守护进程通常在同一台机器上!那么为什么是两个独立的实体呢? 如上所述。。客户端可以使用TCP与守护进程通信。那么,在团队中工作的首选方式是什么?在单独的服务器上为整个团队提供一个守护程序,每个开发人员运行一个客户端?或者每个开发人员都有自己的守护进程。Docker客户端只提供cli,它只是一个http api包装,就像aws cli一样

这是Docker架构: 我无法理解为什么需要docker守护进程。客户很好。客户端只需使用Unix套接字访问守护进程。它可以使用TCP,但我注意到的是,客户端和守护进程通常在同一台机器上!那么为什么是两个独立的实体呢?

如上所述。。客户端可以使用TCP与守护进程通信。那么,在团队中工作的首选方式是什么?在单独的服务器上为整个团队提供一个守护程序,每个开发人员运行一个客户端?或者每个开发人员都有自己的守护进程。

Docker客户端只提供cli,它只是一个http api包装,就像aws cli一样

Docker daemon是整个操作背后的大脑,就像aws本身一样。当您使用
docker run
命令启动容器时,docker客户端将该命令转换为http API调用,将其发送给docker守护进程,docker守护进程然后评估请求,与底层操作系统对话,并为容器提供资源

请注意docker cli可以连接到远程docker守护程序,并且您可以将docker守护程序配置为使用tcp IP

在我看来,在团队中,什么是首选的工作方式?在单独的服务器上为整个团队提供一个守护程序,每个开发人员运行一个客户端?或者每个开发人员都有自己的恶魔

这取决于您,但大多数情况下,开发人员都有一个本地docker守护程序和客户端,使用DockerFile构建映像。如果他们需要共享docker映像,您可以提供本地docker注册表或使用公共的docker注册表。这样,利用docker,您可以拥有完全相同的开发环境供开发人员使用。此开发环境将类似于生产环境

在我看来,在团队中,什么是首选的工作方式?在单独的服务器上为整个团队提供一个守护程序,每个开发人员运行一个客户端?或者每个开发人员都有自己的恶魔

每个开发人员都在使用自己的Docker守护程序和容器:Docker的想法是能够指定(Dockerfile)一个容器,每个开发人员都可以在本地重建和使用,同时保证Docker build将生成完全相同的映像。
或者他们可以docker推送一个映像,并在自己的本地docker守护程序实例上重用它


但在任何情况下,docker守护进程都是每台服务器的,这意味着只有当团队访问公共服务器时,您才会通过团队共享它。如果没有,他们可以在工作站上安装docker,在这种情况下,每个人都有自己的docker守护程序。

docker守护程序安装在主机上,基本上充当docker的大脑;它代表您创建和管理Docker图像。它的全部目的是执行客户端发出的命令

例如,如果您对特定容器发出Docker stop命令,守护进程将继续查找容器并停止它


此外,每当您的容器需要访问网络端口、存储卷或操作系统级别的任何其他组件时,Docker daemon都会提供这些功能。

Farhad确实如此。正如我提到的。。客户端可以使用TCP与守护进程通信。在我看来,在团队中,什么是首选的工作方式?在单独的服务器上为整个团队提供一个守护程序,每个开发人员运行一个客户端?或者每个开发人员都有自己的恶魔。@Apurvasing感谢您的澄清,更新了答案。这是您的错误:“……我注意到的通常是客户端和守护进程在同一台机器上!”在大型生产系统上,这不是真的。