docker command not found even though installed with apt-get
The Ubuntu package docker
actually refers to a GUI application, not the beloved DevOps tool we've come out to look for.
The instructions for docker can be followed per instructions on the docker page here: https://docs.docker.com/engine/install/ubuntu/
=== UPDATED (thanks @Scott Stensland) ===
You now run the following install script to get docker:
`sudo curl -sSL https://get.docker.com/ | sh`
- Note: review the script on the website and make sure you have the right link before continuing since you are running this as sudo.
This will run a script that installs docker. Note the last part of the script:
If you would like to use Docker as a non-root user, you should now consideradding your user to the "docker" group with something like: `sudo usermod -aG docker stens`Remember that you will have to log out and back in for this to take effect!
To update Docker run:
`sudo apt-get update && sudo apt-get upgrade`
For more details on what's going on,See the docker install documentation or @Scott Stensland's answer below
.
=== UPDATE: For those uncomfortable w/ sudo | sh ===
Some in the comments have mentioned that it a risk to run an arbitrary script as sudo. The above option is a convenience script from docker to make the task simple. However, for those that are security-focused but don't want to read the script you can do the following:
- Add Dependencies
sudo apt-get update; \sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
- Add docker gpg key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
(Security check, verify key fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
$ sudo apt-key fingerprint 0EBFCD88pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88uid [ unknown] Docker Release (CE deb) <docker@docker.com>sub rsa4096 2017-02-22 [S]
)
- Setup Repository
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
- Install Docker
sudo apt-get update; \sudo apt-get install docker-ce docker-ce-cli containerd.io
If you want to verify that it worked run:sudo docker run hello-world
The following explains why it is named like this:Why install docker on ubuntu should be `sudo apt-get install docker.io`?
IMPORTANT - on ubuntu package docker
is something entirely different ( avoid it ) :
issue following to view what if any packages you have mentioning docker
dpkg -l|grep docker
if only match is following then you do NOT have docker installed below is an unrelated package
docker - System tray for KDE3/GNOME2 docklet applications
if you do see above lets remove it since its the wrong docker
sudo apt-get remove docker # remove the wrong docker
if you see something similar to following then you have docker installed
dpkg -l|grep dockerii docker-ce 5:19.03.13~3-0~ubuntu-focal amd64 Docker: the open-source application container engineii docker-ce-cli 5:19.03.13~3-0~ubuntu-focal amd64 Docker CLI: the open-source application container engine
NOTE - ubuntu package docker.io
is not getting updates ( obsolete do NOT use )
Instead do this : install the latest version of docker on linux by executing the following:
sudo apt-get install docker-ce
below is yet another way to issue the install command
sudo curl -sSL https://get.docker.com/ | sh# sudo curl -sSL https://test.docker.com | sh # get dev pipeline version
here is a typical output ( ubuntu 16.04 )
apparmor is enabled in the kernel and apparmor utils were already installed+ sudo -E sh -c apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609DExecuting: /tmp/tmp.rAAGu0P85R/gpg.1.sh --keyserverhkp://ha.pool.sks-keyservers.net:80--recv-keys58118E89F3A912897C070ADBF76221572C52609Dgpg: requesting key 2C52609D from hkp server ha.pool.sks-keyservers.netgpg: key 2C52609D: "Docker Release Tool (releasedocker) <docker@docker.com>" 1 new signaturegpg: Total number processed: 1gpg: new signatures: 1+ break+ sudo -E sh -c apt-key adv -k 58118E89F3A912897C070ADBF76221572C52609D >/dev/null+ sudo -E sh -c mkdir -p /etc/apt/sources.list.d+ dpkg --print-architecture+ sudo -E sh -c echo deb [arch=amd64] https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list+ sudo -E sh -c sleep 3; apt-get update; apt-get install -y -q docker-engineHit:1 http://repo.steampowered.com/steam precise InReleaseHit:2 http://download.virtualbox.org/virtualbox/debian xenial InRelease Ign:3 http://dl.google.com/linux/chrome/deb stable InRelease Hit:4 http://dl.google.com/linux/chrome/deb stable Release Hit:5 http://archive.canonical.com/ubuntu xenial InRelease Hit:6 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial InRelease Hit:7 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial-updates InRelease Hit:8 http://ppa.launchpad.net/me-davidsansome/clementine/ubuntu xenial InRelease Ign:9 http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 InRelease Hit:10 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial-backports InRelease Hit:11 http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 Release Hit:12 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial-security InRelease Hit:14 http://ppa.launchpad.net/numix/ppa/ubuntu xenial InRelease Ign:15 http://linux.dropbox.com/ubuntu wily InRelease Ign:16 http://repo.vivaldi.com/stable/deb stable InRelease Hit:17 http://repo.vivaldi.com/stable/deb stable Release Get:18 http://linux.dropbox.com/ubuntu wily Release [6,596 B] Get:19 https://apt.dockerproject.org/repo ubuntu-xenial InRelease [20.6 kB] Ign:20 http://packages.amplify.nginx.com/ubuntu xenial InRelease Hit:22 http://packages.amplify.nginx.com/ubuntu xenial ReleaseHit:23 https://deb.opera.com/opera-beta stable InReleaseHit:26 https://deb.opera.com/opera-developer stable InReleaseGet:28 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages [1,719 B]Hit:29 https://packagecloud.io/slacktechnologies/slack/debian jessie InReleaseFetched 28.9 kB in 1s (17.2 kB/s)Reading package lists... DoneW: http://repo.mongodb.org/apt/debian/dists/wheezy/mongodb-org/3.2/Release.gpg: Signature by key 42F3E95A2C4F08279C4960ADD68FA50FEA312927 uses weak digest algorithm (SHA1)Reading package lists...Building dependency tree...Reading state information...The following additional packages will be installed: aufs-tools cgroupfs-mountThe following NEW packages will be installed: aufs-tools cgroupfs-mount docker-engine0 upgraded, 3 newly installed, 0 to remove and 17 not upgraded.Need to get 14.6 MB of archives.After this operation, 73.7 MB of additional disk space will be used.Get:1 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB]Get:2 http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B]Get:3 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 docker-engine amd64 1.11.2-0~xenial [14.5 MB]Fetched 14.6 MB in 7s (2,047 kB/s)Selecting previously unselected package aufs-tools.(Reading database ... 427978 files and directories currently installed.)Preparing to unpack .../aufs-tools_1%3a3.2+20130722-1.1ubuntu1_amd64.deb ...Unpacking aufs-tools (1:3.2+20130722-1.1ubuntu1) ...Selecting previously unselected package cgroupfs-mount.Preparing to unpack .../cgroupfs-mount_1.2_all.deb ...Unpacking cgroupfs-mount (1.2) ...Selecting previously unselected package docker-engine.Preparing to unpack .../docker-engine_1.11.2-0~xenial_amd64.deb ...Unpacking docker-engine (1.11.2-0~xenial) ...Processing triggers for libc-bin (2.23-0ubuntu3) ...Processing triggers for man-db (2.7.5-1) ...Processing triggers for ureadahead (0.100.0-19) ...Processing triggers for systemd (229-4ubuntu6) ...Setting up aufs-tools (1:3.2+20130722-1.1ubuntu1) ...Setting up cgroupfs-mount (1.2) ...Setting up docker-engine (1.11.2-0~xenial) ...Processing triggers for libc-bin (2.23-0ubuntu3) ...Processing triggers for systemd (229-4ubuntu6) ...Processing triggers for ureadahead (0.100.0-19) ...+ sudo -E sh -c docker versionClient: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 22:00:43 2016 OS/Arch: linux/amd64Server: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 22:00:43 2016 OS/Arch: linux/amd64If you would like to use Docker as a non-root user, you should now consideradding your user to the "docker" group with something like: sudo usermod -aG docker stensRemember that you will have to log out and back in for this to take effect!
Here is the underlying detailed install instructions which as you can see comes bundled into above technique ... Above one liner gives you same as :
https://docs.docker.com/engine/installation/linux/ubuntulinux/
Once installed you can see what docker packages were installed by issuing
dpkg -l|grep dockerii docker-ce 5:19.03.13~3-0~ubuntu-focal amd64 Docker: the open-source application container engineii docker-ce-cli 5:19.03.13~3-0~ubuntu-focal amd64 Docker CLI: the open-source application container engine
now Docker updates will get installed going forward when you issue
sudo apt-get updatesudo apt-get upgrade
take a look at
ls -latr /etc/apt/sources.list.d/*docker*-rw-r--r-- 1 root root 202 Jun 23 10:01 /etc/apt/sources.list.d/docker.list.save-rw-r--r-- 1 root root 71 Jul 4 11:32 /etc/apt/sources.list.d/docker.listcat /etc/apt/sources.list.d/docker.listdeb [arch=amd64] https://apt.dockerproject.org/repo ubuntu-xenial main
or more generally
cd /etc/aptgrep -r docker *sources.list.d/docker.list:deb [arch=amd64] https://download.docker.com/linux/ubuntu focal test
sudo apt-get install docker # DO NOT do this
is a different library on ubuntu.
Use sudo apt-get install docker-ce
to install the correct docker.