How to install Docker on Ubuntu 20.04
This article is my note of Docker installation and troubleshooting process, follow by the Docker official guide.
Set up the repository
Update the apt package index and install packages to allow apt to use a repository over HTTPS:
sudo apt update sudo apt install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify that you now have the key with the fingerprint
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
, by searching for the last 8 characters of the fingerprint.sudo apt-key fingerprint 0EBFCD88
Set up the stable repository.
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Install Docker engine
Update the apt package index, and install the latest version of Docker Engine and containerd.
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
Verify that Docker Engine is installed correctly by running the hello-world image.
sudo docker run hello-world
You should see the welcome message below if Docker has been successfully installed:
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
- Troubleshooting: Error when connect to docker.io
Using docker command without sudo
Add the docker group if it doesn’t already exist:
sudo groupadd docker
Add the connected user “$USER” to the docker group. Change the user name to match your preferred user if you do not want to use your current user:
sudo gpasswd -a $USER docker
To activate the changes to groups:
# option: sg group_name -c "bash" # or: newgrp docker
Or log out/in to activate the changes.
Check if it’s successful:
docker ps
Troubleshooting
Error when connect to docker.io
This error occurs when using the Docker CLI, failed even simply calling docker run
, the error message like this:
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection
- Fixing in the new
daemon.json
fileList current DNS server:
nmcli dev show | grep 'IP4.DNS'
Create or Edit
/etc/docker/daemon.json
add the DNS server:In this case
192.19.8.10
is my proxy server,8.8.8.8
is Google Public DNS server.{ "dns": ["192.19.8.10", "8.8.8.8"] }
Restart Docker deamon
sudo service docker restart
References
- Docker official guide
- How can I use docker without sudo? - ASK UBUNTU
- docker.io DNS doesn’t work, it’s trying to use 8.8.8.8 - ASK UBUNTU