Need advice about which tool to choose?Ask the StackShare community!
Docker vs Supervisord: What are the differences?
1. Image vs Process management: Docker is primarily used for packaging applications into lightweight, portable containers known as Docker images. These images contain everything needed to run an application, including the code, runtime, system tools, and libraries. On the other hand, Supervisord is a process manager that helps in controlling and monitoring multiple processes within a single OS instance. It ensures that specified processes are running and provides a mechanism to start, stop, and restart them.
2. Isolation vs Process control: Docker provides containerization, which offers significant isolation between different applications or services running on the same host. Each Docker container runs separately and has its own isolated resources, such as filesystem, network stack, and process space. Conversely, Supervisord does not provide isolation between processes. It is primarily focused on process control, helping to manage and control individual processes on a single OS instance.
3. Scalability: Docker offers a scalable solution by allowing the deployment of multiple containers across different hosts, forming a Docker swarm or Kubernetes cluster. This enables horizontal scaling of applications, as containers can be easily replicated and distributed across multiple machines. On the other hand, Supervisord is not designed for managing large-scale deployments and is more suited for managing processes within a single host.
4. Application Packaging: Docker is widely used for application packaging and distribution. It allows developers to build container images containing all the dependencies and configurations required for an application to run consistently in any environment. Supervisord, on the other hand, does not provide a packaging mechanism and requires manual configuration on each host where it is used.
5. Portability: Docker provides a high level of portability, allowing containers to run on any host that has Docker installed, regardless of the underlying operating system. This is achieved through the use of containerization technologies such as namespaces and control groups. Supervisord, being primarily focused on process management within a single host, does not offer the same level of portability as Docker.
6. Ecosystem and Community: Docker has a large and active community, with extensive documentation, tutorials, and a wide range of pre-built Docker images available in the Docker Hub. This makes it easier for developers to find solutions and troubleshoot issues. On the other hand, Supervisord does not have as large of a community or ecosystem, which may make it more challenging to find resources or support.
In Summary, Docker provides image-based isolation, scalability, packaging, portability, and a vibrant community, while Supervisord focuses on process control within a single host.
lxd/lxc and Docker aren't congruent so this comparison needs a more detailed look; but in short I can say: the lxd-integrated administration of storage including zfs with its snapshot capabilities as well as the system container (multi-process) approach of lxc vs. the limited single-process container approach of Docker is the main reason I chose lxd over Docker.
Pros of Docker
- Rapid integration and build up823
- Isolation692
- Open source521
- Testability and reproducibility505
- Lightweight460
- Standardization218
- Scalable185
- Upgrading / downgrading / application versions106
- Security88
- Private paas environments85
- Portability34
- Limit resource usage26
- Game changer17
- I love the way docker has changed virtualization16
- Fast14
- Concurrency12
- Docker's Compose tools8
- Fast and Portable6
- Easy setup6
- Because its fun5
- Makes shipping to production very simple4
- It's dope3
- Highly useful3
- Does a nice job hogging memory2
- Open source and highly configurable2
- Simplicity, isolation, resource effective2
- MacOS support FAKE2
- Its cool2
- Docker hub for the FTW2
- HIgh Throughput2
- Very easy to setup integrate and build2
- Package the environment with the application2
- Super2
- Asdfd0
Pros of Supervisord
Sign up to add or upvote prosMake informed product decisions
Cons of Docker
- New versions == broken features8
- Unreliable networking6
- Documentation not always in sync6
- Moves quickly4
- Not Secure3