I just read Docker's excellent Getting Started guide, and just wanted to confirm I understand the basic Docker parlance before I go much further. These definitions are somewhat provided in the docs, but a lot of those docs are example-based without giving concrete form to the following concepts.
As such, my understanding is that:
So I ask: am I correct in my understanding of these fundamental terms or am I misled in some way?
Services: Docker Services are the different components of your application...
A service is a an image docker swarm manages for you. You might ask it to run three instances of this image, and docker swarm will do so (if it can).
Docker Hub shows you all the different images you can run.
Cluster: Docker Clusters are when you have a Swarm managing 1+ Services for an application across 2+ Docker Hosts; the Cluster simply refers to all the Docker Hosts where your Service containers are running.
Yeah. A cluster is made up of nodes which are either workers (that run the services), or managers (control the scheduling of services across the nodes). Note that a node can be both a worker and a manager.
I'm still getting my head around managers but I believe you should aim to have an odd number of at least 3 otherwise you can have issues if a manager disappears.
Compose: Docker Compose is a tool used to manage Services, Swarms and Stacks.
Docker compose is used to combine images into a working application. It might include a front end proxy, a website and a backend database for example. This technology has nothing to do with docker swarm particularly... except you can use it to deploy your application across a swarm (https://codefresh.io/blog/deploy-docker-compose-v3-swarm-mode-cluster/)
Stack: Docker Stacks occur when a Swarm Manager is managing multiple...
Stack is used for docker cloud. This probably isn't what you are looking for :)