What is the need for Docker Daemon?

Q in my mind was, what is the preferred way to work in a team? One daemon for whole team on separate server with each dev running a client? Or each dev has his own demon

Each dev is working with its own Docker daemon and container: the idea with Docker is to be able to specify (Dockerfile) a container that each developer can rebuild and use locally, with the assurance that docker build will produce the exact same image.
Or they can docker push an image an reuse it on their own local docker daemon instance.

But in any case, the docker daemon is per server, meaning you would share it through a team only if said team accessed a common server. If not, they can install docker on their workstation in which case, each one have their own docker daemon.


Docker client provides cli only, it is just an http api wrapper, Like aws cli.

Docker daemon is the brain behind the whole operation, like aws itself. When you use docker run command to start up a container, your docker client will translate that command into http API call, sends it to docker daemon, Docker daemon then evaluates the request, talks to underlying os and provisions your container.

Please note docker cli can connect to remote docker daemon, and your can configure your docker daemon to use tcp IP.

Q in my mind was, what is the preferred way to work in a team? One daemon for whole team on separate server with each dev running a client? Or each dev has his own demon.

This is up to you but most of the time developers have a local docker daemon and client, building Images using dockerfiles. If they need to share docker images, You can provide local docker registry or use public ones. This way, Taking advantage docker you can have exact same dev environment at developers disposal. This development environment will be similar to production environment.

Tags:

Docker