127

I'm trying to install Docker on a Ubuntu 64 machine following the official installation guide.

Sadly Ubuntu seems it is not able to locate the docker-ce package. Any idea to fix it or at least to track what is happening ?

Here some details for you...

$ uname --all; sudo grep docker /etc/apt/sources.list; sudo apt-get install docker-ce

Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package docker-ce
danidemi
  • 1,553

5 Answers5

254

Add Docker's official GPG key:

sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Ubuntu 23.10 (Mantic Minotaur)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu mantic stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 23.04 (Lunar Lobster)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu lunar stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 22.10 (Kinetic)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu kinetic stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 22.04 (Jammy)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 21.10 (Impish)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu impish stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 21.04 (hirsute)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu hirsute stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 20.10 (Groovy)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu groovy stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 20.04 (Focal)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu focal stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 19.10 (Eoan)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu eoan stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 19.04 (Disco)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu disco stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 18.10 (Cosmic)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu cosmic stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 18.04 (bionic)

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu bionic stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 17.10

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu artful stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 16.04

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu xenial stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Run the following:

sudo apt update
apt-cache search docker-ce

sample output:

docker-ce - Docker: the open-source application container engine

Install docker-ce:

sudo apt install docker-ce

To check the available and permitted Ubuntu codenames:

curl -sSL  https://download.docker.com/linux/ubuntu/dists/ |awk -F'"' 'FNR >7 {print $2}'

sample output (Results may be different after the directory updates):

../
artful/
bionic/
cosmic/
disco/
eoan/
focal/
groovy/
hirsute/
impish/
jammy/
kinetic/
lunar/
trusty/
xenial/
yakkety/
zesty/

Docker , OS requirements

GAD3R
  • 66,769
  • 9
    way better than https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ – lonewarrior556 Jul 15 '17 at 20:59
  • why is it not in the official repositories? – dashesy Aug 25 '17 at 17:53
  • 2
    It's worth mentioning that for Ubuntu 17.10, the step 3 would be: sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable" – progfan Nov 04 '17 at 03:58
  • 3
    still not in artful repository :( – Michael Wiles Nov 17 '17 at 09:18
  • docker not being in zesty -- but why not snap? isn't the point of snap to install packages like this? – Thufir Nov 19 '17 at 09:58
  • 1
    @GAD3R that's a good answer. perhaps bull-headed of me, want to install with snap -- if do-able. (I mean, it installs, but then...etc. something about apparmor.) I'll come back and try this at some point -- I'm sure it works :) – Thufir Nov 19 '17 at 10:06
  • @MichaelWiles please see my answer for Ubuntu 17.10 (artful): https://unix.stackexchange.com/a/406952/102003 – Hieu Nov 25 '17 at 10:46
  • 4
    The instructions for 17.10 also worked for me in 18.04, when the official docker-ce install instructions did not. Maybe not recommended though, since it's from the artful repo? – CivFan Apr 27 '18 at 22:53
  • 1
    Indeed for 18.04 bionic docker repo from test fixed the issue 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

    Fix: sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu
    $(lsb_release -cs)
    test" sudo apt-get update Install docker

    – Doogle May 13 '18 at 10:02
  • 1
    I would recommend putting your updated answers on top and not at the bottom. I ran the outdated answer before seeing the updated answer. – Anish Mar 08 '19 at 21:07
  • For ubuntu 19.04 I found @pwaterz comment useful, which only sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" worked. Note bionic – Gayan Jul 11 '19 at 19:31
  • For Ubuntu 18.04 (Bionic), I had to do: sudo apt install docker-containerd docker-doc docker-runc docker.io (still having problems running hello-world, but...) – Andrew Mar 23 '20 at 16:15
  • @GAD3R It wasn't a question. – Andrew Mar 23 '20 at 18:03
  • Worked well for Ubuntu 20.04.2: $ 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 focal stable" && sudo apt install -y uidmap – Pathros Jun 13 '21 at 22:31
  • 1
    What about 21.10 (impish)? :) – Slava Fomin II Oct 22 '21 at 17:57
  • 1
    Doesn't work on impish (E: Unable to locate package docker-ce). Had to revert /etc/apt/sources.list.d/docker.list to hirsute. – Yann Dìnendal Oct 25 '21 at 14:14
15

For anyone who is using Ubuntu 17.10 (artful) and having this problem:

From https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

To install Docker CE, you need the 64-bit version of one of these Ubuntu versions:

Artful 17.10 (Docker CE 17.11 Edge only)

Zesty 17.04

Xenial 16.04

(LTS) Trusty 14.04 (LTS)

and:

To add the edge or test repository, add the word edge or test (or both) after the word stable in the commands

So if you are using Ubuntu 17.10 (artful), you need to add this:

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable edge"

Noticing "edge" word is added. If you already ran this command before without "edge". You can edit the source.list file at /etc/apt/sources.list. After that, refresh and install docker-ce as usual:

sudo apt-get update
sudo apt-get install docker-ce
Hieu
  • 251
5

Try using:

$ 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) stable"

$ sudo apt-get update
$  sudo apt install docker.io
ENDEESA
  • 151
  • when asked for version docker version, it gave hint to use $sudo apt install docker.io.. that ran successfully. – HydTechie May 12 '18 at 17:02
  • @HydTechie, The docs says that the old docker versions should be uninstalled, docker.io being one of the older versions: https://docs.docker.com/install/linux/docker-ce/ubuntu/#uninstall-old-versions – Skaparate Nov 22 '18 at 20:19
3

Looks like docker will be in official repository after December docker-ce release (stable). Then this repository:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable"

should work. Meanwhile there should be soon available edge release on

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful edge"

But its not available now yet. But v17.11.0-ce-rc4 was released yesterday, so i would expect it any day now.

So for now I used package from 17.04 repo as GAD3R is suggesting.

link to github issue.

0

None of the above worked for me.

I removed docker completely, then went and manually removed the docker files in /var.

Reinstalled and running perfectly afterwards.

Kevdog777
  • 3,224
Johan
  • 1
  • 1
    FYI for 19.04 'disco' repo does not have docker-ce, you have to use bionic until it gets added. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" – pwaterz Apr 25 '19 at 06:16
  • yup, same here today with disco have to use bionic packages instead. – Pedro Costa May 31 '19 at 13:23