Quick Links
Docker Desktopis a popular containerization solution which bundles everything you need to build images and run containers. One download gives you Docker, Docker Compose,Kubernetes, a comprehensive GUI, and support for a large selection of third-party extensions.
Docker Desktop has historically been limited to Windows and Mac systems. Linux users have had toinstall Docker Enginemanually and interact with it from the terminal ora separate user interface. Docker announced a version of Desktop for Linuxat DockerCon 2022, finally offering feature parity across all three major platforms. This guide will show you how to set it up and get started.

Preparing to Run Docker Desktop
The steps in this article have been tested in a clean Ubuntu 22.04 environment. Desktop’s also supported on Ubuntu 21.10, Debian 11, and Fedora 35/36. Distro-specific documentation is availableon Docker’s website.
Desktop requires a 64-bit system with 4 GB of RAM and KVM hardware virtualization enabled. The KVM kernel module is usually enabled automatically when your host supports virtualization. You can check by running thekvm-okcommand:

INFO: /dev/kvm exists
KVM acceleration can be used

Enable virtualization in your system’s BIOS or UEFI ifkvm-okreports an error. You can also try manually loading the KVM kernel module usingmodprobe:
$ sudo modprobe kvm

2/2 INTEL ONLY
$ sudo modprobe kvm_intel

2/2 AMD ONLY
$ sudo modprobe kvm_amd

Docker Desktop isn’t designed to run alongside Docker Engine. Youshould stop the Docker serviceif you’ve already been using Docker Engine on your machine. This will reduce resource consumption and minimize the risk of conflicts between Engine and Desktop.
Installing Docker Desktop
The Docker Desktop package isn’t yet available in repositories so it must be manually acquired. Download the right package for your operating system using the linksin the documentation.
The Docker Desktop package depends on other packages from the Docker repository. Although Desktop itself isn’t installed from the repository, you still need it in your sources list so the dependencies can be resolved. Run the following sequence of commands to add Docker’s Apt repository to your machine:

$ sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
Download the GPG key used to sign the packages in the repository
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
Add the repository to your package sources list
$ echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
Docker Desktop should now appear in your applications list.
Using Docker Desktop
Start Docker Desktop from your operating system’s app launcher. You should see the Docker whale icon appear in your system tray. Clicking the icon displays Docker’s tray menu.
The first run initialization process could take a couple of minutes to complete. The icon’s animation will stop and the status line at the top of the menu will change to “Docker Desktop is running” when Docker’s ready to use. Click the “Dashboard” item at the top of the menu to open the UI if it doesn’t appear automatically.
You’ll be prompted to accept the terms of service and will then be taken to the Containers screen. You can optionally login to Docker Hub by clicking the Login button in the title bar and following the prompts.
Try runningdockeranddocker composein your terminal to check the CLIs are available:
Cloud integration: v1.0.29
$ docker compose version
Docker Compose version v2.10.2
Next start a container to verify your installation’s working:
Your new container should show up in the Docker Desktop UI. Clicking the three dots icon to the right of the table reveals a list of actions you’re able to take within Docker Desktop, such as opening a terminal inside the container or visiting published ports in your browser.
The Images tab on the left side of the screen provides a table of all the container images present on your host. Controls are available to clean up unused images, quickly start a new container from an image, and push and pull images between different registries.
You can get more information on using Docker Desktopwithin the documentation. The functionality covers many of thedockerCLI commands while layering in additional higher-level concepts such asDeveloper Environmentsfor work-in-progress code sharing.
Enabling Kubernetes
Docker Desktop has integrated Kubernetes support but it’s not enabled by default. Turn it on by clicking the settings cog icon in the app’s title bar and then selecting “Kubernetes” from the menu on the left.
Check the “Enable Kubernetes” checkbox and press the “Apply & Restart” button in the bottom-right. It could take several minutes for Docker to acquire the Kubernetes components and create your cluster. A Kubernetes status icon will appear in the bottom-left of the app, next to the Docker icon. It will turn green when Kubernetes is ready to use. The Kubernetes status is also shown at the top of Docker Desktop’s tray menu.
Nextinstall Kubectl. This is the CLI used to interact with your Kubernetes cluster. The official Snap package is the easiest way to add it to Ubuntu:
docker-desktop Ready control-plane 22m v1.25.0
pod/nginx created
service/nginx exposed
Now find the host port that was allocated to the service:
kubernetes ClusterIP 10.96.0.1 443/TCP 23m
nginx NodePort 10.96.132.212 80:30107/TCP 75s
The port number is30107. Use this port to access your service and retrieve the default NGINX landing page:
Your Kubernetes cluster is fully operational. It’ll start automatically whenever Docker Desktop is running.
Docker Desktop vs Docker Engine
Docker Engine is completely separate to Docker Desktop. Docker Engine launches containers as processes directly on your host. It uses a system service to run the Docker daemon. ThedockerCLI targets this daemon instance when you issue commands.
Docker Desktop runs your containers inside aQEMUvirtual machine. You don’t have to directly interact with QEMU as the VM’s creation and management is handled for you. Launching Docker Desktop automatically starts the VM; quitting the app will shut it down.
The VM architecture was a necessity for running Docker on Windows and Mac systems. It provides a predictable environment for hosting Linux containers. The Docker team decided to continue using VMs for Desktop on Linux to prevent inconsistencies arising between platforms.
Although the VM doesn’t affect day-to-day Docker usage, it’s a heavier solution that demands more resources than Docker Engine. You can expect the VM to consume around 2 GB of RAM while idle, even when no containers are running. Docker Engine’s memory consumption would be negligible in the same situation.
This means Docker Engine remains the best way to run containers on Linux in production environments or wherever performance is critical. Desktop is a great option for developers who want to use the same fully integrated workflow as peers on Windows and Mac. Desktop’s also the best choice when you want to use Kubernetes without adding any extra tools. You’ll need a dedicated Kubernetes environment such asMinikubeorMicroK8sif you’re using Docker Engine.
Configuring Desktop’s Docker Daemon
you’re able to customize theDocker daemon configurationused by Desktop by clicking the settings cog icon in the title bar and heading to the “Docker Engine” tab on the left of the screen.
Type or paste your changes into the input provided, then press “Apply & Restart” in the bottom-right corner.
Customizing Resource Limits
Docker Desktop automatically limits the resources that its virtual machine can consume. The defaults are half of the total number of processor cores available, 25% of your system memory, and a 1 GB swap file.
These limits can be changed by heading to Docker Desktop’s settings screen and clicking the “Resources” tab in the menu on the left. Use the sliders to customize the cap for each resource. you may resize the virtual disc used to store the VM’s data by scrolling down the screen. Click the “Apply & Restart” button in the bottom-right when you’re done.
Summary
Docker Desktop is a developer-oriented containerization solution that combines thedockerCLI with a versatile GUI and integrated Kubernetes support. Desktop’s arrival on Linux means development teams can standardize on a consistent toolchain, irrespective of the platform preferences of individual engineers.
Docker Desktop is best seen as an alternative to Docker Engine. It provides its own container environment, including a virtualized Docker Engine and a full suite of Docker CLIs. You can’t use the Desktop GUI with an existing Docker Engine installation. Desktop is most applicable to developer workstations while Docker Engine should be used on production servers where you don’t need a graphical interface and want to avoid the overheads of running a VM.