Docker Daemon需要什么?

Apu*_*ngh 15 docker

这是Docker架构: 在此输入图像描述 我无法弄清楚为什么需要docker守护进程.客户很好.客户端只需使用Unix套接字访问守护进程.它可以使用TCP,但我注意到的通常是客户端和守护进程在同一台机器上!那为什么两个独立的实体?
如上所述..客户端可以使用TCP与守护进程通信.那么在团队中工作的首选方式是什么?整个团队的一个守护进程在单独的服务器上运行客户端的每个开发人员?或者每个开发人员都有自己的守护进程.

Far*_*ahi 19

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

Docker守护进程是整个操作背后的大脑,就像aws本身一样.当您使用docker run命令启动容器时,您的docker客户端会将该命令转换为http API调用,将其发送到docker守护程序,Docker守护程序然后评估请求,与底层操作系统进行通信并配置您的容器.

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

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

这取决于您,但大多数时候开发人员都有本地docker守护程序和客户端,使用dockerfiles构建映像.如果他们需要共享docker镜像,您可以提供本地docker注册表或使用公共注册表注册表.通过这种方式,利用docker,您可以在开发人员的处置中拥有完全相同的开发环境.此开发环境将类似于生产环境.


Von*_*onC 6

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

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

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