Docker Machine vs Docker Swarm: What are the differences?
Docker Machine: Machine management for a container-centric world. Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them; Docker Swarm: Native clustering for Docker. Turn a pool of Docker hosts into a single, virtual host. Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.
Docker Machine and Docker Swarm can be categorized as "Container" tools.
"Easy docker hosts management" is the primary reason why developers consider Docker Machine over the competitors, whereas "Docker friendly" was stated as the key factor in picking Docker Swarm.
Docker Machine and Docker Swarm are both open source tools. Docker Swarm with 5.63K GitHub stars and 1.11K forks on GitHub appears to be more popular than Docker Machine with 5.39K GitHub stars and 1.56K GitHub forks.
Docker, Bugsnag, and Dial Once are some of the popular companies that use Docker Swarm, whereas Docker Machine is used by Docker, Leftronic, and DNT. Docker Swarm has a broader approval, being mentioned in 82 company stacks & 38 developers stacks; compared to Docker Machine, which is listed in 43 company stacks and 47 developer stacks.
What is Docker Machine?
What is Docker Swarm?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Docker Machine?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.
After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...