¿Qué es Docker y cómo se usa en un VPS?
Docker es una herramienta que ejecuta una aplicación, junto con todo lo que necesita, dentro de un paquete aislado llamado contenedor. En un VPS, usar Docker significa que arrancas una aplicación a partir de un paquete ya preparado en lugar de instalarla pieza a pieza en el servidor. Instalar y quitar algo lleva unos pocos comandos, y las aplicaciones no se molestan entre sí con sus ajustes.
A diferencia de una máquina virtual, un contenedor no lleva su propio sistema operativo. Comparte el kernel del servidor, así que arranca en segundos y usa poca memoria. La contrapartida es que su aislamiento no es tan fuerte como el de una máquina virtual.
Cuatro términos bastan para empezar
| Término | Qué significa |
|---|---|
| Imagen | El paquete ya preparado de una aplicación. Se descarga de un registro como Docker Hub. |
| Contenedor | Una copia en ejecución iniciada a partir de una imagen. |
| Volumen | Almacenamiento persistente que conserva tus datos aunque se borre el contenedor. |
| Compose | Una herramienta que define varios contenedores en un solo archivo compose.yaml y los gestiona con un único comando. |
Al borrar un contenedor se borran los archivos que hay dentro. Monta en un volumen o en una carpeta del servidor todo lo que deba sobrevivir, como una base de datos.
¿Cómo se instala Docker en Ubuntu?
Primero conéctate al servidor por SSH. El paquete docker.io de los repositorios de Ubuntu funciona, y el servidor con Docker preinstalado de Seturack lo usa. Para la última versión, usa el repositorio apt del propio Docker. Según la documentación oficial de Docker, los paquetes de Ubuntu como docker.io y docker-compose entran en conflicto con los paquetes de Docker, así que quítalos primero si están instalados.
- Sigue la sección "apt repository" de la página de instalación de Docker para Ubuntu para añadir la clave de firma y la fuente del repositorio. Ejecuta los comandos de allí tal cual, porque cambian entre versiones.
- Instala los paquetes:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - Comprueba que el servicio está en marcha:
sudo systemctl status docker - Ejecuta el contenedor de prueba:
sudo docker run --rm hello-world
Si ves el mensaje de bienvenida, Docker está listo. En Ubuntu y Debian el servicio arranca solo en cada inicio.
Tu primer contenedor
Inicia un servidor web con un solo comando:
docker run -d --name web --restart unless-stopped -p 80:80 nginx:1.30
-d ejecuta el contenedor en segundo plano. --restart unless-stopped lo inicia de nuevo cuando el servidor se reinicia o el contenedor falla. -p 80:80 conecta el puerto 80 del servidor con el contenedor. nginx:1.30 es el nombre de la imagen y la etiqueta de versión. La etiqueta es solo un ejemplo, así que elige la etiqueta estable actual en la página oficial de Nginx en Docker Hub. Abre la dirección IP del servidor en un navegador y verás la página de bienvenida de Nginx. Para eliminarlo, ejecuta docker rm -f web.
Monta un volumen para los datos persistentes, por ejemplo -v sitedata:/usr/share/nginx/html. Los volúmenes se listan con docker volume ls. Los servicios del mismo archivo compose.yaml se alcanzan entre sí por el nombre del servicio, de modo que tu aplicación se conecta a la base de datos como db, por ejemplo.
Cuando tienes varios contenedores, ponlos todos en un archivo compose.yaml y ejecuta docker compose up -d en la carpeta del archivo. Las claves image, restart, ports y volumes del archivo equivalen a las opciones anteriores. Compruebas el estado con docker compose ps, lees los registros con docker compose logs -f y lo apagas todo con docker compose down.
Comandos que usarás a diario
| Comando | Para qué sirve |
|---|---|
docker ps | Lista los contenedores en ejecución. Añade -a para ver también los detenidos. |
docker logs -f web | Sigue en directo el registro del contenedor web. |
docker exec -it web sh | Abre una shell dentro del contenedor. |
docker stats | Muestra el uso de CPU y de memoria de los contenedores. |
docker compose pull y docker compose up -d | Descarga la imagen nueva y sustituye el contenedor por el nuevo. Los datos de los volúmenes se conservan. |
Antes de actualizar, lee las notas de la versión de la aplicación y sube tú mismo la etiqueta de versión en el archivo compose. Fijar la etiqueta sirve para que una actualización sea una decisión, no un accidente.
Cuatro cosas a las que debes prestar atención
- Docker se salta las reglas de ufw. Según la documentación oficial, los puertos que Docker publica se abren antes de que se apliquen las reglas de ufw. Una regla de ufw que deniegue uno de esos puertos no tiene efecto. Enlaza solo a la dirección local un servicio que no deba ser accesible desde fuera, por ejemplo
-p 127.0.0.1:5432:5432. Los contenedores de la misma red de Docker ya pueden comunicarse entre sí, así que no necesitas publicar una base de datos. - La etiqueta latest. Si no indicas ninguna etiqueta, se descarga
latest. En la siguiente descarga tu aplicación puede saltar a una versión que no esperabas. Escribe una etiqueta concreta y programa tú las actualizaciones. - El grupo docker equivale a root. Añadir un usuario al grupo
dockerle da privilegios de nivel root (documentación oficial). Añade solo cuentas de confianza. - Los registros y las imágenes llenan el disco. El ajuste de registro predeterminado de Docker no tiene límite de tamaño. Fija uno en el contenedor:
--log-opt max-size=10m --log-opt max-file=3.docker system dfmuestra el uso de disco, ydocker image pruneelimina las imágenes sin etiqueta.
¿Docker o instalación directa?
Docker ayuda cuando ejecutas varias aplicaciones que necesitan versiones distintas en un mismo servidor, cuando quieres probar una aplicación y quitarla sin dejar rastro, o cuando el desarrollador publica una imagen oficial. Para un caso sencillo, como un solo sitio WordPress, una instalación directa también está bien. Docker es una capa adicional: actualizarlo, monitorizarlo y hacer copias de los volúmenes es tu trabajo. Si tienes dudas, empieza con una aplicación pequeña. No hace falta pasarlo todo a Docker de golpe.
Docker viene preparado en Seturack
Si no quieres instalar Docker tú mismo, puedes pedir un servidor con la aplicación Docker. Docker y Compose vienen instalados, y la instalación tarda unos 2,5 minutos. El cortafuegos (ufw) está activado y solo está abierto hacia el exterior el puerto SSH, fail2ban protege SSH, y los registros de los contenedores se limitan a 3 archivos de 10 MB por contenedor. La aplicación no tiene interfaz web, así que el panel no muestra dirección del sitio. La trampa de los puertos descrita arriba también se aplica aquí. Para empezar con un servidor ya preparado, consulta la página del VPS con Docker.
Comentarios0
Todavía no hay comentarios
Sea la primera persona en compartir su opinión.
Inicie sesión o regístrese para dejar un comentario.