How to install docker and docker-compose on Ubuntu in 30 seconds
Use our script:
wget -qO- https://techoverflow.net/scripts/install-docker.sh | sudo bash /dev/stdin
After that, logout and login (or close your SSH session and re-connect) (else, you will only be able to run the docker
client as root - see Solving Docker permission denied while trying to connect to the Docker daemon socket)
Or do it manually:
Copy and paste these command blocks into your Linux shell. You need to copy & paste one block at a time - you can paste the next block once the previous block is finished!
# Install prerequisites
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# Add docker's package signing key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Add repository
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Install latest stable docker stable version
sudo apt-get update
sudo apt-get -y install docker-ce
# Install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod a+x /usr/local/bin/docker-compose
# Enable & start docker
sudo systemctl enable docker
sudo systemctl start docker
Note that this will install Docker as deb package whereas docker-compose will be downloaded to /usr/local/bin
.
In case you intend to use docker under your normal user account (i.e. without sudo), you might want to add that user to the docker
group (we recommend you do this):
sudo usermod -a -G docker $USER
This settings requires that you logout and log back in (or completely terminate your SSH session and open a new SSH session) in order to take effect.
In case that does not work and you still get permission denied
error messages try rebootingyour computer.
In order to check if your user is currently a member of the docker groups, run
groups
Example output:
uli adm tty lp uucp dialout cdrom sudo dip plugdev lpadmin sambashare vboxusers lxd docker
These are the groups your user currently belongs to (as said before, changes only take effect after logging out and logging back in or terminating and re-opening your SSH session). If docker
is listed in the output of groups
(tip: it’s typically near the end in case you have just added it!), you should be able to access the docker socket. See the Background information section of Solving Docker permission denied while trying to connect to the Docker daemon socket for more details on docker sockets and their permissions.