Q. Docker Swarm discovery is still relevant?
A: No, if you use docker Swarm Mode
and an overlay network
(see below)
Q. Are there any difference between Docker Swarm
and Docker Swarm Mode
?
A: Yes, TL;DR Docker Swarm
is deprecated and should not be used anymore, Docker Swarm Mode
(we should just say Swarm Mode
) is the recommended way of clustering containers and have reliability, load-balancing, scaling, and rolling service upgrades.
Docker Swarm
(official doc) :
- is the old fashioned way (<1.12) of clustering containers
- uses a dedicated container for building a
Docker Swarm
cluster
- needs a discovery service like Consul to reference containers in cluster
Swarm Mode
(official doc):
- is the new and recommended way (>=1.12) of clustering containers on host nodes (called
managers
/ workers
)
- is built-in in
Docker engine
, you don't need an additional container
- has a built-in discovery service if you use an
overlay network
(DNS resolution is done within this network), you don't need an additional container
You can have a look to this SO thread on same topic.
Q. Do i always need docker-machine
to create a swarm?
A: No, docker-machine
is a helper to create virtual hosts in the cloud like amazon ec2, azure, digitalocean, google, openstack..., or your own network with virtual box.
To create a Swarm Mode
, you need :
- a multiple hosts cluster with docker engine installed on each host (called node) (that is what
docker-machine
facilitates)
- run
docker swarm init
to switch to Swarm Mode
on your first manager node
- run
docker swarm join
on worker nodes to add them in the cluster
There are some subtle adjustments to Swarm mode
to increase high availability (recommended number of managers in the swarm, node placement in multiple availability zones in the cloud)
Hope this helps!