Cómo instalar Docker
Categoría:
Sysadmin
Fecha:
09/10/2023
En un post anterior vimos lo que es Docker y cómo funciona. También hemos visto las ventajas que tiene frente a las máquinas virtuales y sus puntos fuertes. Pero ahora vamos a ver cómo instalar Docker en un servidor VPS de Raiola Networks.
Los servidores VPS de Raiola Networks son una excelente opción para entornos Docker Engine en los que no necesitamos muchos recursos. Esto es ideal para un entorno de pruebas o un entorno en producción que no sea muy exigente, en el que no se necesite escalado ni nada complejo.
El proceso de instalación de Docker Engine realmente no es difícil. Apenas en un par de comandos, podemos tener la última versión de Docker instalada.
No me voy a enrollar más: vamos a explicar el proceso paso a paso desde la instalación de Docker hasta la instalación de Portainer, un panel de control bastante útil para gestionar contenedores Docker de forma visual.
Índice del artículo
- 1 - Contratar y preparar el servidor VPS
- 2 - Conectarnos al servidor e instalar Docker
- 2.1 - Instalar Docker Compose
- 3 - Deploy de nuestro primer contenedor
- 4 - Comandos básicos para Docker
- 4.1 - Ver la versión de Docker
- 4.2 - Ver información sobre nuestro Docker Engine
- 4.3 - Ver los contenedores que se están ejecutando
- 4.4 - Listar todos los contenedores del servidor Docker
- 4.5 - Listar las imágenes Docker que hay en el servidor
- 4.6 - Convertir una imagen en contenedor
- 5 - Deploy de Portainer para la gestión de contenedores visual
1 - Contratar y preparar el servidor VPS
En primer lugar, vamos a contratar el servidor VPS en esta misma web. Como he comentado antes, si no tienes unas necesidades específicas, el servidor VPS más pequeño te servirá.
El servidor VPS que hemos marcado en la imagen anterior es el más barato y el más pequeño. En el futuro puedes ampliarlo sin problema si necesitas más recursos.
Para instalar Docker, vamos a instalar Debian 11 como sistema operativo en el momento de la contratación.
Recuerda que, para gestionar tú mismo el servidor Docker, debe ser un servidor VPS sin administración y sin panel de control.
Una vez que tenemos el servidor VPS contratado y funcionando, habremos recibido en nuestro email los datos de acceso para conectarnos por SSH.
Ahora debemos utilizar un cliente SSH, como Putty, para acceder al terminal de nuestro servidor para instalar Docker.
2 - Conectarnos al servidor e instalar Docker
Ahora sí que podemos decir que vamos a empezar con la instalación de Docker. Para ello, vamos a conectarnos por SSH al servidor VPS que acabamos de contratar.
Yo, como cliente SSH, siempre suelo utilizar Putty, pero puedes utilizar el cliente SSH que a ti más te guste, ya que simplemente es una herramienta.
En primer lugar, tengo la manía de actualizar siempre el sistema operativo al empezar una instalación de este tipo. Así que lo primero que voy a ejecutar en mi Debian recién instalado es esto:
apt-get upgrade
Ahora vamos a instalar Docker. Pero vamos a instalar la versión Community Edition, comúnmente llamado Docker CE.
En primer lugar, ejecutamos APT-GET para instalar estos paquetes necesarios:
apt-get install software-properties-common apt-transport-https ca-certificates curl gnupg lsb-release
Una vez que terminamos con estos paquetes, llega el momento de añadir la clave del repositorio de Docker para Debian:
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Ahora debemos añadir el repositorio de Docker a nuestra instalación de Debian:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ahora, simplemente debemos volver a actualizar los datos desde los repositorios con el comando APT-GET.
apt-get upgrade
Una vez que hemos hecho esto, vamos a usar de nuevo APT-GET para instalar los paquetes de Docker desde el repositorio de Docker:
apt-get install docker-ce docker-ce-cli containerd.io
Debemos esperar a que finalice el proceso. En este caso, puede tardar algo más de tiempo porque se tienen que descargar e instalar unos cuantos paquetes en nuestro servidor VPS.
Una vez que ha acabado, debemos arrancar Docker en nuestro servidor:
systemctl enable docker
Para comprobar si nuestro Docker está funcionando, podemos utilizar el siguiente comando:
systemctl status docker
Otra forma de comprobar si todo está funcionando es realizar el despliegue de nuestro primer contenedor, pero esto vamos a verlo un poco más abajo.
2.1 - Instalar Docker Compose
Si, además de instalar Docker, necesitas una herramienta para configurar y desplegar varios contenedores al mismo tiempo, debemos instalar Docker Compose.
La instalación de Docker Compose realmente es simple. Debemos ejecutar el siguiente comando con APT-GET:
apt-get install docker-compose-plugin
Con esto ya tendríamos listo Docker Compose y ya podríamos probarlo, pero esto no lo mostraremos en este artículo porque no está orientado al uso de Docker Compose.
Si no sabes exactamente lo que es Docker Compose, lo explicamos brevemente en el artículo "Qué es Docker" publicado en este blog.
3 - Deploy de nuestro primer contenedor
En el entorno Docker existe un contenedor de prueba llamado "hello world" que nos permite probar el funcionamiento del entorno Docker Engine.
Para descargar desde Docker Hub este primer contenedor, podemos utilizar el siguiente comando en nuestro terminal SSH:
docker run hello-world
Con esto, si no ha dado ningún error, sabremos que nuestro Docker Engine está funcionando correctamente y tendremos nuestro primer contenedor funcionando.
4 - Comandos básicos para Docker
Como he dicho en el otro artículo donde hablaba sobre Docker, la mayoría de los profesionales que utilizan Docker usan la línea de comandos en lugar de un panel visual como Portainer.
Te voy a comentar algunos comandos básicos para el uso de Docker y la gestión de las imágenes y los contenedores. Esto no pretende ser un manual de comandos para Docker; eso queda para otro artículo.
4.1 - Ver la versión de Docker
Empezamos por el comando más simple. Para ver la versión de Docker que tenemos instalada, simplemente debemos utilizar el siguiente comando:
docker version
Esto es útil para saber si podemos o tenemos que actualizar Docker Engine.
4.2 - Ver información sobre nuestro Docker Engine
Existe un comando que nos va a permitir ver información sobre lo que está pasando en nuestro servidor Docker:
docker info
Aunque puede parecer "un tostón" toda la información que devuelve, a veces es útil para ver que está pasando en nuestro servidor.
4.3 - Ver los contenedores que se están ejecutando
Si queremos ver los contenedores que se están ejecutando en nuestro servidor, podemos utilizar el siguiente comando:
docker ps
Si un contenedor no aparece es que puede estar creado, pero no se está ejecutando.
4.4 - Listar todos los contenedores del servidor Docker
En el caso anterior, listamos los contenedores Docker que se estaban ejecutando en el Docker Engine. En cambio, si queremos listar todos los contenedores configurados o de los que se ha hecho deploy en el servidor, debemos utilizado el siguiente comando:
docker container ls -a
En los contenedores que estén parados, simplemente nos especificará la fecha de creación y la fecha de último "arrancado". Sin embargo, en los que estén funcionando nos saldrán los puertos mapeados.
4.5 - Listar las imágenes Docker que hay en el servidor
Si lo que queremos es ver que imágenes Docker se han descargado en el servidor, podemos hacerlo utilizando el siguiente comando:
docker images
Además, también nos especificará el tamaño de la imagen, la versión y cuándo han sido descargadas en el servidor.
4.6 - Convertir una imagen en contenedor
Para finalizar esta sección, vamos a hablar del comando "docker run", que ya hemos utilizado al ejecutar "docker run hello world" para ejecutar nuestro primer contenedor.
Este comando es simple. Por ponerte un ejemplo, simplemente ejecutando el siguiente comando, vamos a descargar la imagen oficial de "Nginx" para Docker y vamos a arrancar un contenedor con los parámetros por defecto y posiblemente sin mapear ningún puerto:
docker run nginx
El problema es que, normalmente, el comando "docker run" se complica al tener que añadir argumentos específicos de cada imagen para configurar cada contenedor.
En la mayoría de los casos, en entornos en producción Docker se utiliza la herramienta Docker Compose en lugar de "run".
5 - Deploy de Portainer para la gestión de contenedores visual
Ahora que tenemos nuestro primer contenedor funcionando, podemos gestionarlo usando comandos o usando un entorno visual.
Portainer es uno de los paneles más utilizados (incluso podemos considerarlo oficial). Para instalar Portainer, en primer lugar vamos a crear un volumen:
docker volume create Portainer_data
Ahora, vamos a ejecutar el "docker run" correspondiente con todos los parámetros necesarios para ejecutarse en el puerto 8000 y utilizar el volumen que hemos creado con el comando anterior:
docker run -d -p 8000:8000 -p 9443:9443 --name Portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v Portainer_data:/data \
cr.Portainer.io/Portainer/Portainer-ce:2.9.3
Ya podemos ejecutar un "docker ps" para ver que todo es correcto.
Ahora debemos dejar la línea de comandos de lado y usar el navegador de nuestro ordenador para acabar la configuración de Portainer.
Para ello, usaremos la IP de nuestro servidor y el puerto 9000, que es el que hemos configurado para Portainer. Si todo es correcto, tendremos esto en pantalla:
Tendremos que indicar un usuario y una contraseña para crear la cuenta de administrador.
Una vez creado el usuario, directamente podremos acceder al panel de Portainer para gestionar nuestro servidor Docker e incluso podremos gestionar otros servidores que también ejecuten Docker:
Debemos ir a "Home" para acceder al entorno "Local". Portainer, al instalarse, se autoconfigura para la gestión de los contenedores y las imágenes en el Docker Engine local.
Seleccionamos "Local" y ya podremos descargar imágenes, hacer deploy de contenedores, configurar volúmenes, configurar redes, etc.
Como he comentado al principio de este artículo y en el otro post de Docker que he escrito, lo normal es utilizar la línea de comandos para la gestión de contenedores en lugar de un entorno visual como Portainer.
Deja una respuesta
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *