Docker Desktop doesn't install saying docker-ce-cli not installable

Viewed 10860

In an online training course, the instructor mentioned that he has "an Ubuntu virtual machine installed with Docker Desktop"; therefore, I am trying to install the same on a Windows 10 physical host following the instructions on the official website.

However, the apt-get install didn't work, and the error message was docker-desktop : Depends: docker-ce-cli but it is not installable. I am wondering whether I missed anything here.

We highly appreciate any hints or suggestions. Just let me know if you need more details.

Screenshot:

root@dockeru:/home/work/Downloads# ls
docker-desktop-4.8.1-amd64.deb  firefox.tmp
root@dockeru:/home/work/Downloads# apt-get install ./docker-desktop-4.8.1-amd64.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'docker-desktop' instead of './docker-desktop-4.8.1-amd64.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies:
 docker-desktop : Depends: docker-ce-cli but it is not installable
E: Unable to correct problems, you have held broken packages.
5 Answers

You first need to install the docker engine. Official Docker Engine link Then you can follow the docker desktop guide. I think this is caused because docker desktop can't install without some dependencies that install with docker engine.

You don't need to install Docker Engine alongside Docker Desktop unless you really need it. Docker's documentation clearly states:

Docker Desktop for Linux and Docker Engine can be installed side-by-side on the same machine. Using a dedicated storage location for Docker Desktop prevents it from interfering with a Docker Engine installation on the same machine. While it’s possible to run both Docker Desktop and Docker Engine simultaneously, there may be situations where running both at the same time can cause issues.

The issue you are facing is due to the missing Docker repository on your system, which you can resolve by following a part of Docker Engine's documentation as follows:

sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
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 -y

After that, you can go on with the installation of Docker Desktop:

sudo apt install ./docker-desktop-<version>-<arch>.deb

P.S. Don't get panic if you see the error below at the end of the installation process. Just ignore it and you'll be fine ;)

Download is performed unsandboxed as root as file docker-desktop-
<version>-<arch>.deb couldn't be accessed by user '_apt'. - 
pkgAcquire::Run (13: Permission denied)

I am using Ubuntu (specifically Zorin OS) and ran into the same issue while installing. However, I've solved mine by following the Setup repository part of Install Docker Engine documentation, and after that, running the sudo apt-get install ./docker-desktop-<version>-<arch>.deb to install the .deb file again. And it worked.

How this works? Because apt will try to automatically install any required dependencies that are not installed/unmet. It tried to do it in this case, however, it doesn't know docker-ce-cli because it's not in the default apt repository or in any other apt repository it currently uses. But by successfully adding the Docker repository to apt by following the steps in the Install Docker Engine documentation, it can now see and knows the docker-ce-cli package. And when you run the sudo apt install on the docker desktop deb package, it will now automatically install the docker-ce-cli along with other required dependencies.

Thanks for this. I as well had the same problem and had to search for a solution. The Mac OSX and Windows installers all come as a single package, but the Linux one does require the Docker engine to be installed first.

The Docker Desktop for Linux should detect that the engine isn't installed and give you a more useful error than

docker-desktop : Depends: docker-ce-cli but it is not installable

But if it did that then how would the Linux community keep the riff-raff out? Yep. Linux is not for the faint of heart, or those who fear the command line.

Related