Para seguir con nuestro proyecto instalaremos ahora Docker, ya que muchos servicios que instalaremos serán mediante imágenes de docker. Por lo que instalar correctamente Docker en nuestro servidor será algo fundamental. Aplicaciones como Nginx Proxy Manager que instalaremos posteriormente lo haremos de esta manera. Así pues, comencemos.
Siempre me gusta instalar las últimas versiones de software disponible y aquí no haré la excepción por lo que instalaremos la última versión disponible de docker que haya, por lo que usaremos los repositorios de este para conseguir dicha versión.
Primero instalaremos los paquetes de ca-certificates y gnupg:
sudo apt install ca-certificates gnupg
Creamos una carpeta para almacenar los keyrings:
sudo install -m 0755 -d /etc/apt/keyrings
Descargamos la clave PGP y la almacenamos en la ruta anterior:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Otorgamos permisos al fichero que hemos descargado:
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Configuramos el repositorio que usará docker:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ahora ejecutamos una actualización con update / upgrade para refrescar los repositorios y finalmente lanzaremos la instalación de Docker con todos los paquetes recomendados:
sudo apt update && sudo apt upgrade -y
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Por último, comprobamos que se ha instalado adecuadamente:
sudo docker run hello-world
Si todo va bien saldrá lo siguiente en pantalla:
jmdlr@debian:$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:266b191e926f65542fa8daaec01a192c4d292bff79426f47300a046e1bc576fd
Status: Downloaded newer image for hello-world:latest
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/
Finalmente podemos ver que tenemos la última versión instalada:
jmdlr@debian:~$ docker -v
Docker version 26.1.3, build b72abbb
Ahora quedará configurar docker para poder usarlo con nuestro usuario, ya que tener que usarlo con «root» puede ser tedioso la vez que inseguro.
Vamos a por ello entonces.
Creamos un grupo para docker:
sudo groupadd docker
Es posible que nos salga que ya lo hemos creado, si es así, seguimos para adelante, añadimos nuestro usuario a ese grupo de docker:
sudo usermod -aG docker jmdlr
Para que se apliquen los cambios tenemos que deconectar y volver a conectar con nuestro usuario. Esto es importante o no podremos utilizar docker. Lo hacemos.
A la vuelta probamos si ya podemos ejecutar docker con nuestro usuario:
docker run hello-world
Si todo ha ido bien veremos en la pantalla eso de «Hello from Docker!»
Y con esto estaría todo por el momento, ¡seguiremos construyendo nuestro servidor self-hosting en próximos capítulos!
¡Nos vemos en el Fediverso!
Deja una respuesta