Primero desinstalamos cualquier registro de docker que puede haber venido en nuestro sistema
sudo apt remove docker docker-engine docker.io containerd runc
Luego actualizamos todos los paquetes del sistema
sudo apt update
A razon de que por defecto apt no utiliza https, vamos a instalar los siguientes paquetes que permitiran a apt acceder a un repositorio via https.
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Luego agregamos la llave del repo de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Y confirmamos que la llave sea la correcta (se puede omitir este paso, pero es recomendado)
sudo apt-key fingerprint 0EBFCD88
Luego agregamos el repositorio de docker a apt
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
Actualizamos nuevamente la cache de repositorios de apt
sudo apt update
Y ahora procedemos a instalar docker
sudo apt install docker-ce docker-ce-cli containerd.io
Para confirmar que docker este andando y funcionando corremos el siguiente comando
sudo docker run hello-world
Si docker esta funcionando deberia decir en alguna parte del texto "Hello from Docker!"
En este punto docker esta funcionando y andando para el administrador (sudo) pero si queremos que funcione para nuestro usuario comun sin permisos de administrador, podemos seguir los siguientes pasos
Primero agregamos un grupo llamado docker
sudo groupadd docker
Luego agregamos nuestro usuario al grupo de dockeer
sudo usermod -aG docker $USER
Reiniciamos la pc o salimos y volvemos a entrar a la sesion del usuario y probamos que se pueda ejecutar el siguiente comando sin premisos sudo
docker run hello-world
Si tenemos un error similar a
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Podemos solucionarlo ejecutando los siguientes comandos
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R