Updated: June 8, 2022
I like intuitive software solutions. Y'know, products that are so easy to use you don't really need a manual, and if you do have to consult the documentation, then you will definitely find the answers you're looking for. In my experience, Docker stuff definitely qualifies in this domain.
Recently, I came across a new Docker thing - Docker Desktop. This is meant to be the GUI for Docker container management, intended as a cushty frontend for things you would normally do on the command line with the Docker engine. Well, sounds quite interesting, so let's see what gives.
Installation and setup
My first order of the day was to get Docker Desktop installed. This was surprisingly complex. First, I had to add and configure the Docker Community Edition (CE) repository, which provides all of the Docker basics and dependencies. Once I had that sorted, I had to manually download the Docker Desktop DEB file and install it locally (via any one of the package management tools available in Kubuntu). I did consult the documentation, including any possible error messages and snags, and overall, the process went well. But then ...
I tried to start Docker Desktop, and I saw the following text on my terminal screen:
systemctl --user start docker-desktop
Failed to start docker-desktop.service: Unit docker-desktop.service is masked.
At this point, I tried to unmask the service, but then:
sudo systemctl unmask docker-desktop
Unit docker-desktop.service does not exist, proceeding anyway.
As it turns out, you may hit a bug whereby the Docker Desktop installation does not always complete smoothly, and you end up in a situation where the service cannot be started. The solution was to uninstall the program, reboot, then try again, and this time, it did run.
At this point, my mild anger dissipated, because there it was, the simple, intuitive design again. Instantly, I knew what I could do, or had to do. Technically, there is no great mystery here, and if you're familiar with Docker, you will feel at home. If you look at my Docker guide above, or any one of the other dozen tutorials I've written over the years (just check the Virtualization section), then you will realize that Docker is flexible, powerful and easy to use - and this GUI simply gives you a graphical way of doing the same.
I started with an aptly named "Getting started" container, then spawned another one. Once you have the containers running, you can inspect them, check the entire flow of commands executed, which can be extremely useful if you want to create your own containers and learn from existing examples, or step into the containers and do some actual work. The only issue here was, Docker Desktop assumes you have the Gnome terminal installed, and if you don't, boom, error.
Images, volumes, extensions
Beyond the basics, you can start doing things in a slightly more serious manner. With containers and virtualization, the key to success lies in scalability, orchestration, and consequently, one's ability to automate these as much as possible. In a way, GUI sounds like an anathema to this concept, but it does not have to be, if done well.
You get a reasonable overview of your existing containers, volumes and images (used to spawn containers). You get usage statistics, and you can install extensions (a beta feature), which allow you to quickly improve on your workflows. Of course, the devil is in the detail, and a lot of modern IDE-like tools, especially those with a browser-like spin in their behavior, do the same thing, and you often end up with a layered ecosystems of tools and features, some of these online, some cloud, sign in, whatnot. Docker Desktop offers a lot of these, but there is some genuinely useful content, too. Now, let's not forget - this is a solution for your desktop, not for your enterprise. But the approach is solid.
I've not done too much work with Docker Desktop. Also, I think that power users will be just as comfortable with the command line and their own scripting. But for those who like a somewhat simpler approach, Docker Desktop does provide the combination of intuitive technology and friendly tooling. You get a solid product that lets you play with containers, test applications, automate your work, and then deploy your solutions in a resemblance of a serious productivity pipeline that you get in larger infrastructures, which is the whole idea of solutions like this.
There were some snags, like the installation service bug, and the terminal launch glitch, but other than that, I was quite happy with my brief brush with Docker Desktop. The overall feel is quite consistent, and has remained so over the years. All in all, 'twas a good day. Worth testing, so there you go.