141

I'm following the official Docker installation guide for docker-ce on Ubuntu.

When I get to sudo apt install docker-ce I get E: Package 'docker-ce' has no installation candidate:

$ sudo apt-get update
Hit:1 http://gb.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://gb.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://gb.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
Reading package lists... Done

$ sudo apt-get install \
>     apt-transport-https \
>     ca-certificates \
>     curl \
>     software-properties-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ca-certificates is already the newest version (20180409).
curl is already the newest version (7.58.0-2ubuntu3).
software-properties-common is already the newest version (0.96.24.32.1).
The following NEW packages will be installed
  apt-transport-https
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
Need to get 1,692 B of archives.
After this operation, 152 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://gb.archive.ubuntu.com/ubuntu bionic/universe amd64 apt-transport-https all 1.6.1 [1,692 B]
Fetched 1,692 B in 0s (65.4 kB/s)               
Selecting previously unselected package apt-transport-https.
(Reading database ... 116694 files and directories currently installed.)
Preparing to unpack .../apt-transport-https_1.6.1_all.deb ...
Unpacking apt-transport-https (1.6.1) ...
Setting up apt-transport-https (1.6.1) ...

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

$ sudo add-apt-repository \
>    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
>    $(lsb_release -cs) \
>    stable"
Hit:1 http://gb.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://gb.archive.ubuntu.com/ubuntu bionic-updates InRelease                                                                                    
Hit:3 http://gb.archive.ubuntu.com/ubuntu bionic-backports InRelease                                                                                  
Get:4 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB]                                                       
Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease                                                               
Fetched 64.4 kB in 0s (141 kB/s)
Reading package lists... Done

robin@xps:~/git/snapcraft.io$ sudo apt-get update
Hit:1 http://gb.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://gb.archive.ubuntu.com/ubuntu bionic-updates InRelease                                      
Hit:3 http://gb.archive.ubuntu.com/ubuntu bionic-backports InRelease                                                                                   
Hit:4 https://download.docker.com/linux/ubuntu bionic InRelease                                                                                        
Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease                                                                
Reading package lists... Done  

$ sudo apt-get install docker-ce
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'docker-ce' has no installation candidate

My first thought was that Docker haven't released a package for Bionic yet (it's very new) but when I searched for "install docker-ce ubuntu 18.04" I found a guide which seems 18.04 specific, and basically just gives exactly the same instructions - suggesting that it at least worked for the author:

https://linuxconfig.org/how-to-install-docker-on-ubuntu-18-04-bionic-beaver

Does anyone have any idea why this might not be working for me?

Robin Winslow
  • 2,626
  • 3
  • 20
  • 26

8 Answers8

131

Run this if you want to install the docker-ce on Ubuntu 18.04:

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu `lsb_release -cs` test"
sudo apt update
sudo apt install docker-ce

To check if the installation ended successfuly, just run:

docker -v

should output:

Docker version 18.06.1-ce, build e68fc7a
Yuval Pruss
  • 1,433
  • 9
    Also, in case of Ubuntu 19, just change bionic in the 3rd line to disco – pkuderov Apr 20 '19 at 02:32
  • Btw, that url plus "bionic" plus "test" is just a path to release - you can check that url and follow the path. Seems that any valid path is viable - there're another stable/nightly/etc releases for some number of versions of Ubuntu. So for any future Ubuntu version its corresponding release can be checked there. – pkuderov Apr 20 '19 at 02:42
  • @pkuderov Docker ce is not in that repository, the deb is also available only to containerd.io. I don't know if bionic would work instead of disco in that case. It's so frustrating. – andras Apr 20 '19 at 07:08
  • @pkuderov You can edit the response accordingly – Yuval Pruss Apr 22 '19 at 15:20
  • 2
    Guys, it looks like suffixes -ce and -ee are removed since ver. 18.09.0, so there's no mistake as far as I see. Checked my installation from test build - sudo docker run hello-world works correctly. The only problem I see - 19 ver is in beta. Sorry for confusing - only 2nd week using Linux :) – pkuderov Apr 22 '19 at 17:36
  • 1
    Can we replace bionic with xenial? I've just tried it on ubuntu 16.04 and it seems to work although the ouput of lsb_release -cs was xenial. – Ibrahim.H Jul 22 '20 at 21:00
  • Side-note for beginners: execute each row on its own. Copying all of the code concatenates the commands and does not execute a tail of the commands. – questionto42 Dec 09 '21 at 15:24
44

From the same guide you referenced, you can use repository for 17.10 instead at this moment:

deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable

And all docker-ce dependent packages will be resolved from the ubuntu bionic repository. Check the Docker documentation for more info. No compatibility issues to worry about :)

2018-07-19 update

Docker 18.06 has been updated to bionic repository, this workaround is not required anymore!

pyjavo
  • 103
  • 1
  • 4
tan9
  • 556
  • 16
    Still does not work on 18.04.

    I still get

    E: Package 'docker-ce' has no installation candidate

    – R J Jun 04 '18 at 12:58
  • @RJ It does work for me on 18.04. It is now a few days later; maybe there have been a few updates to the repositories. I noticed that some of the packages were downloaded from bionic and other ones from artful. – NZD Jun 07 '18 at 03:36
  • https://github.com/docker/for-linux/issues/290#issuecomment-393605253 – mafrosis Jun 08 '18 at 22:30
  • I can confirm that this is working, just installed it on 18.04 ➜ ~ docker -v Docker version 18.03.1-ce, build 9ee9f40 – copser Jun 13 '18 at 12:47
  • 2
    FYI, since June 21, it can be installed with: curl -fsSL get.docker.com | CHANNEL=stable sh – Juha Untinen Aug 27 '18 at 12:55
  • try this one https://stackoverflow.com/a/55012230/1396526 – Teymur Mardaliyer Lennon Mar 05 '19 at 21:59
  • thanks, as in documentation, prior installing from the repo are necessary to carry out multiple steps – FantomX1 Nov 13 '20 at 07:42
14

I had the same issue, here is how I fixed it:

$ sudo snap install docker

$docker -v

Docker version 18.06.1-ce, build e68fc7a


$sudo docker version


Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Tue May  7 18:01:43 2019
 OS/Arch:           linux/386
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       e68fc7a
  Built:            Tue May  7 18:01:44 2019
  OS/Arch:          linux/386
ThunderBird
  • 1,955
10

Some of the guides jumped the gun; docker-ce is not available for Ubuntu 18.04 yet at the time of this post. You can check the list of supported versions here.

That same guide you linked to suggested installing docker.io; this is what I did. It's a workaround until docker-ce supports 18.04.

Thomas Ward
  • 74,764
ajh158
  • 209
  • 1
    From the same guide, you can use repository for 17.10 instead at this moment: deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable – tan9 Apr 30 '18 at 16:28
  • @tan9 that should be the accepted answer - could you post it as an answer? – Robin Winslow May 03 '18 at 09:42
  • 2
    I am running 18.04, and pointing the URL to artful did not help for me. The only thing that worked was installing docker.io. – R J Jun 04 '18 at 13:01
8

Following the steps here in the Docker documentation worked for me. I just had to change stable to test in this command

sudo add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Zanna
  • 70,465
xExplorer
  • 121
3

If you are getting the error, Package 'docker-ce' has no installation candidate, then use this:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable edge test"
Nmath
  • 12,333
1

Snap package of docker will be easily install able on Ubuntu 19.04 (Disco) and it worked for me.

Check out the documentation for it here:

https://github.com/docker/docker-snap

cocomac
  • 3,394
  • 1
    Welcome to AU. Could you edit your answer to provide a summary of the solution you give. This way, your answer will remain valid even even the link dispappears or changes. Thank you for your efforts. – Marc Vanhoomissen Jul 04 '19 at 09:19
1

By Executing the following commands we can install docker

 curl -fsSL get.docker.com | CHANNEL=stable sh
 sudo apt install docker-ce
 sudo apt-get install docker-ce docker-ce-cli containerd.io