Docker Cloud vs Jenkins: What are the differences?
What is Docker Cloud? A hosted service for Docker container management and deployment. Docker Cloud is the best way to deploy and manage Dockerized applications. Docker Cloud makes it easy for new Docker users to manage and deploy the full spectrum of applications, from single container apps to distributed microservices stacks, to any cloud or on-premises infrastructure.
What is Jenkins? An extendable open source continuous integration server. In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 300 plugins to support building and testing virtually any project.
Docker Cloud and Jenkins are primarily classified as "Containers as a Service" and "Continuous Integration" tools respectively.
Some of the features offered by Docker Cloud are:
- Simplify Docker Provisioning
- Deploy Apps Anywhere
- Automate Your Developer Workflows
On the other hand, Jenkins provides the following key features:
- Easy installation
- Easy configuration
- Change set support
"Easy to use" is the primary reason why developers consider Docker Cloud over the competitors, whereas "Hosted internally" was stated as the key factor in picking Jenkins.
Jenkins is an open source tool with 13.2K GitHub stars and 5.43K GitHub forks. Here's a link to Jenkins's open source repository on GitHub.
According to the StackShare community, Jenkins has a broader approval, being mentioned in 1753 company stacks & 1479 developers stacks; compared to Docker Cloud, which is listed in 21 company stacks and 6 developer stacks.
Within our deployment pipeline, we have a need to deploy to multiple customer environments, and manage secrets specifically in a way that integrates well with AWS, Kubernetes Secrets, Terraform and our pipelines ourselves.
Jenkins offered us the ability to choose one of a number of credentials/secrets management approaches, and models secrets as a more dynamic concept that GitHub Actions provided.
Additionally, we are operating Jenkins within our development Kubernetes cluster as a kind of system-wide orchestrator, allowing us to use Kubernetes pods as build agents, avoiding the ongoing direct costs associated with GitHub Actions minutes / per-user pricing. Obviously as a consequence we take on the indirect costs of maintain Jenkins itself, patching it, upgrading etc. However our experience with managing Jenkins via Kubernetes and declarative Jenkins configuration has led us to believe that this cost is small, particularly as the majority of actual building and testing is handled inside docker containers and Kubernetes, alleviating the need for less supported plugins that may make Jenkins administration more difficult.
Jenkins is a pretty flexible, complete tool. Especially I love the possibility to configure jobs as a code with Jenkins pipelines.
CircleCI is well suited for small projects where the main task is to run continuous integration as quickly as possible. Travis CI is recommended primarily for open-source projects that need to be tested in different environments.
And for something a bit larger I prefer to use Jenkins because it is possible to make serious system configuration thereby different plugins. In Jenkins, I can change almost anything. But if you want to start the CI chain as soon as possible, Jenkins may not be the right choice.
Sign up to add or upvote prosMake informed product decisions
Sign up to add or upvote consMake informed product decisions
What is Docker Cloud?
What is Jenkins?
Need advice about which tool to choose?Ask the StackShare community!
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