LibraHostDocumentación

Documentación

Guías completas para todos nuestros servicios de alojamiento

🐳 Instalar Docker en un VPS#

Aprende a instalar y configurar Docker y Docker Compose en tu VPS para desplegar tus aplicaciones en contenedores de manera simple y eficiente.

🎯 Objetivos#

  • 🐳 Instalar Docker Engine en Ubuntu/Debian
  • 📦 Instalar Docker Compose
  • 🛠️ Dominar los comandos esenciales
  • 🌐 Entender redes y volúmenes
  • 🔧 Resolver problemas comunes

🧰 Prerequisitos#

  • VPS con Ubuntu 20.04+ o Debian 11+
  • Acceso root o sudo
  • Conexión SSH activa
  • Al menos 2 GB de RAM recomendado
  • 10 GB de espacio libre en disco mínimo

1️⃣ Preparación del sistema#

📦 Actualización y limpieza#

# Actualización completa del sistema sudo apt update && sudo apt upgrade -y # Eliminar versiones antiguas de Docker (si están presentes) for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

2️⃣ Instalación de Docker#

📥 Instalación con script oficial#

# Descargar script de instalación oficial curl -fsSL https://get.docker.com -o get-docker.sh # Ejecutar script de instalación sh get-docker.sh # Verificación de la instalación sudo systemctl status docker

✅ Prueba de instalación#

# Prueba con un contenedor Hello World sudo docker run hello-world # Verificación de versión sudo docker --version sudo docker compose version

👥 Configuración de usuarios#

# Agregar tu usuario al grupo Docker (evita sudo) sudo usermod -aG docker $USER # Aplicar cambios (desconexión/reconexión o) newgrp docker # Prueba sin sudo docker run hello-world

3️⃣ Instalación y uso de Docker Compose#

📦 Verificación de Docker Compose#

Docker Compose ahora se incluye como plugin:

# Verificación de la instalación docker compose version # Ayuda de Docker Compose docker compose --help

🚀 Primera prueba práctica#

Probemos Docker con un servidor web simple:

# Lanzar un servidor Nginx docker run -d --name mi-nginx -p 8080:80 nginx # Verificar que el contenedor funcione docker ps # Prueba en el navegador: http://tu-ip:8080 # Deberías ver la página de bienvenida de Nginx # Parar y eliminar el contenedor docker stop mi-nginx docker rm mi-nginx

📝 Ejemplo simple con Docker Compose#

Creemos un archivo docker-compose.yml básico:

# Crear un directorio de prueba mkdir ~/test-docker && cd ~/test-docker # Crear archivo docker-compose.yml cat > docker-compose.yml << 'EOF' version: "3.8" services: web: image: nginx ports: - "8080:80" EOF # Lanzar con Docker Compose docker compose up -d # Verificación docker compose ps # Parar y limpiar docker compose down

4️⃣ Comandos esenciales de Docker#

📦 Gestión de contenedores#

# Listar contenedores activos docker ps # Listar todos los contenedores (activos y parados) docker ps -a # Iniciar un contenedor docker start nombre_contenedor # Parar un contenedor docker stop nombre_contenedor # Reiniciar un contenedor docker restart nombre_contenedor # Eliminar un contenedor docker rm nombre_contenedor # Eliminar todos los contenedores parados docker container prune

🖼️ Gestión de imágenes#

# Listar imágenes docker images # Descargar una imagen docker pull nginx:latest # Eliminar una imagen docker rmi nginx:latest # Eliminar imágenes no utilizadas docker image prune

📊 Monitoreo y logs#

# Logs de un contenedor docker logs nombre_contenedor # Logs en tiempo real docker logs -f nombre_contenedor # Estadísticas de contenedores docker stats # Información del sistema Docker docker system info # Espacio en disco utilizado docker system df

🔧 Acceso a contenedores#

# Ejecutar un comando en un contenedor docker exec -it nombre_contenedor bash # Copiar archivos hacia/desde un contenedor docker cp archivo.txt nombre_contenedor:/path/to/destination docker cp nombre_contenedor:/path/to/file.txt ./

🐙 Comandos de Docker Compose#

# Iniciar servicios docker compose up -d # Ver estado de servicios docker compose ps # Ver logs docker compose logs # Parar servicios docker compose down # Reconstruir e iniciar docker compose up --build -d

5️⃣ Redes y volúmenes de Docker#

🌐 Gestión de redes#

# Listar redes docker network ls # Crear una red docker network create mi-red # Conectar un contenedor a una red docker network connect mi-red nombre_contenedor # Inspeccionar una red docker network inspect mi-red # Eliminar una red docker network rm mi-red

💾 Gestión de volúmenes#

# Listar volúmenes docker volume ls # Crear un volumen docker volume create mi-volumen # Inspeccionar un volumen docker volume inspect mi-volumen # Eliminar un volumen docker volume rm mi-volumen # Eliminar volúmenes no utilizados docker volume prune

6️⃣ Solución de problemas#

🔍 Problemas comunes#

Error: "Cannot connect to Docker daemon"

# Verificación del servicio sudo systemctl status docker # Reiniciar si es necesario sudo systemctl restart docker # Verificación de permisos groups $USER

Error: "No space left on device"

# Verificación del espacio en disco df -h # Limpieza de Docker docker system prune -a # Verificar logs voluminosos sudo du -sh /var/lib/docker/containers/*/

El contenedor no arranca

# Verificación de logs docker logs nombre_contenedor # Verificación de la configuración docker inspect nombre_contenedor # Prueba en modo interactivo docker run -it --entrypoint /bin/bash nombre_imagen

📋 Logs y diagnósticos#

# Logs del daemon Docker sudo journalctl -fu docker.service # Información detallada del sistema docker system info # Eventos de Docker en tiempo real docker events # Inspección detallada de un contenedor docker inspect nombre_contenedor

✅ Resumen de la instalación#

Tu instalación de Docker ahora está completa con:

  • 🐳 Docker Engine + Docker Compose instalados y operativos
  • 🚀 Primeras pruebas realizadas con éxito
  • 🔧 Comandos esenciales dominados
  • 🌐 Gestión de redes y volúmenes configurada