Where does Docker get installed?

I am confused. Does Docker go on my server (where I want to deploy an application found on GitHub)? Or do I run it on my client computer as part of my development environment? E.g., do I use Docker to edit my source code and re-compile, to create an EXE, etc.?

If it runs on the server as part of how the application is executed, do I then, assuming I want to distribute what I am building, do I need to have all of my customers also install Docker on their servers?

I am not completely sure what you call Docker here. Docker has multiple components. the CLI can run on your client machine, but the engine must run on your server where you want to run containers.

  • If you want to develop your application on your client machine, then you need to install docker-ce and docker-ce-cli (Or Docker Desktop on Windows) on client side.
  • f you want to work only on a server, you need to install docker-ce and docker-ce-cli on your server.
  • If you want to run containers on your server, but you also want to be able to access them directly from your client, you need to install docker-ce on your server and docker-ce-cli (Or Docker Desktop on Windows) on your client.

Some people call Docker containers simply just Docker, which is incorrect. A Docker container is an isolated environment for which you need to have the engine to create those environments.

If you need a serverless way to run containers, you can try Podman, which claims to be compatible with the Docker CLI, but Podman has its own limitations too