A día de hoy si eres Desarrollador Backend, Docker es una herramienta casi imprescindible.
En este artículo vamos a explicar como se instalar Docker en Linux Ubuntu.
Se da por supuesto que ya sabes lo que es Docker y tienes conocimientos básicos de su funcionamiento (imágenes, dockerfile, contenedores...).
Instalación:
1: Primero vamos a actualizar la lista de paquetes de nuestro S.O.:
> sudo apt update
2: Instalamos paquetes necesarios para poder utilizar el comando 'apt' a través de una conexión Https:
> sudo apt install apt-transport-https ca-certificates curl software-properties-common
3: Añadimos la clave de GPG para el repositorio oficial de Docker en nuestro sistema:
> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4: Añadimos el repositorio de Docker a las fuentes de 'apt':
> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
5: Volvemos a actualizar la lista de paquetes de nuestro S.O. después de haber añadido el repositorio de Docker:
> sudo apt update
6: Este comando es opcional pero podemos ejecutarlo para asegurarnos que la versión candidata para instalar, es la del repositorio de Docker y no del repositorio predeterminado de Ubuntu.
> apt-cache policy docker-ce
Después de ejecutar el comando se muestra la versión de 'docker-ce' Candidate y se puede comprobar en la lista que la url para esa versión es la de: https://download.docker.com/linux/ubuntu.
7: Por fin podemos instalar Docker:
> sudo apt install docker-ce
8: Podemos comprobar que la instalación a finalizado correctamente y que el servicio (daemon) de Docker se está ejecutando en nuestro sistema con el comando:
> sudo systemctl status docker
Si todo ha salido correctamente, se indicará que el servicio 'docker.service' tiene estado 'Active: active'.
Configurar Docker para que se ejecute al arrancar el Sistema
Para hacer que el servicio de Docker se ejecute automáticamente cada vez que se inicia nuestro S.O. Linux, debemos utilizar los siguientes comandos:
> sudo systemctl enable docker.service
> sudo systemctl enable containerd.service
Si queremos deshacer los cambios anteriores y preferimos arrancar el servicio de Docker de forma manual, debemos utilizar:
> sudo systemctl disable docker.service
> sudo systemctl disable containerd.service
Y para arrancar el servicio de docker de forma manual:
> sudo systemctl start docker
> sudo systemctl status docker
Utilizar docker como SuperUsuario:
Por defecto, el comando docker solo puede ser ejecutado por el usuario root o un usuario del grupo docker, (que se crea automáticamente durante el proceso de instalación de Docker).
Si se intenta ejecutar docker sin el comando sudo o sin formar parte del grupo docker, se obtiene el siguiente error:
Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
Para evitar el uso de sudo cada vez que utilicemos el comando docker vamos a seguir los siguientes pasos:
1: Creamos el grupo 'docker', en teoría ya debería de estar creado después de la instalación de Docker, pero por si acaso, ejecutamos:
> sudo groupadd docker
2: Añadimos nuestro usuario al grupo docker:
> sudo usermod -aG docker $USER
O si estamos logueados con un usuario en concreto y queremos añadir otro usuario (username) al grupo docker:
> sudo usermod -aG docker username
3: Activamos los cambios realizados en el grupo docker:
> newgrp docker
> su - ${USER}
4: Para comprobar que podemos ejecutar el comando docker de forma correcta escribimos:
> docker run hello-world
Con este comando, docker se baja una imagen de test y crea un contenedor a partir de ella. Arranca el contenedor mostrando los correspondientes mensajes y a continuación se detiene.
Si depués de ejecutar el comando anterior aparece el siguiente mensaje:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Puede ser debido a que en algún momento se ejecutó el comando docker con sudo antes de añadir el usuario al grupo docker.
Para solucionarlo hay que modificar el propietario y los permisos de la carpeta '~/.docker/' para que nuestro usuario tenga acceso:
> sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
> sudo chmod g+rwx "$HOME/.docker" -R
Conclusión:
En este artículo hemos visto como instalar Docker en Linux Ubuntu y como configurar nuestro usuario para poder ejecutar el comando 'docker' sin tener que utilizar 'sudo'.
Espero que haya sido de utilidad y que disfrutes de las comodidades de Docker a partir de ahora.
A tope codear!!!