Docker Desktop in enterprise context - Are there relevant alternatives?
CEDRIC DERUE
Solution Architect @ Capgemini Engineering | Author | Speaker | Microsoft MVP | Microsoft MCT | HashiCorp Ambassador | HashiCorp Cloud Engineer Certified
As part of this post, we will discuss Docker Desktop's #DeveloperExperience and assess alternatives for developers who do not want or cannot use Docker Desktop.
1. The Docker Desktop experience
In a blog post published on February 27, Docker, Inc announced the release of #DockerDesktop 4.17.0. The article focuses on development functionality (https://www.docker.com/blog/docker-desktop-4-17-new-development-functionality/). Indeed, the last features introduced with this new version of Docker Desktop improve local Docker image analysis and the publication of Docker Extensions.
1.2. ? Advanced local Docker image analysis
In a world where the exploitation of #SoftwareSecurity vulnerabilities for criminal purposes has never been more prevalent, the security of Docker images must be an ongoing concern within the build chain of these images. Indeed, several studies conducted on public repositories of Docker images show that too many images expose critical vulnerabilities that can be exploited by malicious individuals
To do this, it is therefore essential for the developer to have tools that allow the analysis of Docker images and the correction of detected vulnerabilities as soon as possible without it becoming a time-consuming daily task that would impact the productivity of the development team.
With Docker Desktop and the new built-in #DockerScout feature available with Pro, Team, or Business subscriptions, developers have an advanced tool for analyzing local Docker images. For each vulnerability detected, Docker Scout also provides recommendations for correcting them, thus avoiding the developer's development team having to look for remedial means themselves, sometimes for long hours.
Docker Scout is thus positioned as a real asset in the developer experience offered by Docker Desktop because the development team keeps most of its time producing functionalities, not searching for solutions to vulnerabilities for a long time.
?
Docker Extensions self-published mode
Docker Extensions is a feature introduced in the release of Docker Desktop in version 4.8.0. The purpose of #DockerExtensions is to expand Docker Desktop capabilities by integrating third-party tools as plugins. Docker extensions improve developers' productivity by providing their favorite tools accessible from a marketplace.?
To enrich the marketplace, developers can create and submit their extensions for review. The review time may vary from one Docker extension to another and does not guarantee the quick availability of the extension in the market.
领英推荐
With the new release mode introduced in the release of Docker Desktop in version 4.17.0, it is possible to release a Docker extension without going through the Docker review process. It allows quick giving access to Docker extensions to the development team. An extension released via this route will appear as "not reviewed" in the marketplace.
What’s happening for large companies with Docker Desktop and the new Docker business model?
?Motivations for looking for an alternative can be diverse and varied, but lately, it is, in particular, the change in Docker's pricing policy that has led some companies to look for an alternative solution (https://www.docker.com/pricing/). Sometimes by invoking a cost problem, sometimes by highlighting the purchase processes as too complicated to acquire Docker licenses. As a reminder, Docker Desktop was a free product until the beginning of 2023 when it became a paid product (except for the Docker Personal version).
In talking to developers in many organizations, we can see that this has resulted in the growth of initiatives to recreate a development environment for Docker images and containers using a "Do It Yourself" approach.
For example, companies have chosen to replace Docker Desktop with another container runtime (Podman, containerd, etc.) or, for Windows users, a WSL2 distribution that includes Docker Engine with Docker CLI, Docker Compose, etc. command line tools (https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9)
And that's the problem! Because all these solutions consist of a "cobbled together" container runtime (#DockerEngine, #Podman, or other) combined with additional tools to try to recreate in vain the same developer experience as the one offered by Docker Desktop. If there is any doubt, it is essential to understand the significant differences between a DIY solution and Docker Desktop (https://www.docker.com/products/docker-desktop/alternatives/).
Indeed, because of the lack of ability to use Docker Desktop, a bias has been introduced in the reflection because most of the above-mentioned solutions only allow a degraded working environment. After all, it is deprived of some functionalities which make all the interest in Docker Desktop.
And the limited functional aspect is not the only reproach that could be made against a "home-made" Docker development environment. Thus, we must take into account the economic considerations through indicators such as the TCO (Total Cost Ownership). Indeed, just as an example, a WSL2 distribution with Docker tools in the command line can take several weeks of realization to obtain a stable set which you will then have to ensure the maintenance.
Final thoughts
?Finding an alternative to Docker Desktop is therefore not so simple because it is a matter of finding an alternative to the developer experience provided by Docker Desktop through a set of tools that are simple to install and easy to integrate. As much as to say that the challenge today is still big.
In my personal experience, I exploit to the maximum the features offered by Docker Desktop. That's why every time I tried to use an alternative solution, I came back to Docker Desktop because it is the solution, which admittedly needs to be perfected, that offers me the most comfort and guarantees my productivity in my daily work.
Docker Desktop is truly positioned as a unique productivity tool offering easy installation, automatic updates, and extremely useful features available in a turnkey product.
Solutions Architect
1 年Thanks a lot for this post! Very good summary: like many of us, I've tried to find a reliable and easy-to-set-up solution but could not come up with any as good as Docker Desktop itself ??. In this containerized world, it is a pain indeed ...