Docker: Volúmenes

Cómo persistir los datos de tus contenedores con volúmenes de Docker

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución Docker cloud CaaS (Containers as a Service) lista para usar que proporciona una serie de beneficios, incluyendo:

  • Despliega fácilmente tus contenedores en producción con solo un docker-compose up.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://api.tu-empresa.com, https://www.tu-empresa.com, https://backoffice.tu-empresa.com).
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.
  • Actualizaciones sin esfuerzo con solo un clic.

Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de alojamiento en la nube Docker CaaS de Stackhero y desplegar tus contenedores en producción!

Por diseño, los contenedores de Docker son efímeros. Esto significa que cualquier dato almacenado directamente en ellos se perderá cuando el contenedor sea eliminado o reemplazado por otra instancia. Para asegurar la persistencia de los datos, los volúmenes de Docker son el enfoque recomendado.

alerta No utilice montajes de enlace en Stackhero. Opte siempre por volúmenes de Docker para evitar la pérdida de datos.

Los montajes de enlace implican vincular un directorio de la VM host de Stackhero a un contenedor. Sin embargo, si confía en los montajes de enlace, actualizar su instancia de Stackhero for Docker resultará en la pérdida de todos los datos almacenados de esta manera.

Los montajes de enlace se especifican comúnmente en el comando docker run con una sintaxis como -v /miDirectorio:/mnt (note el / inicial). En los archivos de Docker Compose, aparecen como volumes: /miDirectorio:/mnt. Prohíba estas configuraciones o perderá sus datos.

En su lugar, use volúmenes de Docker, que son gestionados por Docker y no hacen referencia a rutas absolutas.

Para resumir:

Enfoque incorrecto:

docker run -it -v /miDirectorio:/mnt alpine

Enfoque correcto:

docker volume create miVolumen
docker run -it -v miVolumen:/mnt alpine

Al trabajar con archivos de Docker Compose:

Configuración incorrecta:

services:
  miServicio:
    image: alpine
    volumes:
      - /miDirectorio:/mnt

Configuración correcta:

services:
  miServicio:
    image: alpine
    volumes:
      - miVolumen:/mnt

volumes:
  miVolumen:
    name: miVolumen

Aquí tiene una referencia rápida para gestionar volúmenes de Docker:

  • Para crear un nuevo volumen llamado miVolumen, ejecute:

    docker volume create miVolumen
    
  • Para listar todos los volúmenes existentes:

    docker volume ls
    
  • Para eliminar un volumen específico llamado miVolumen:

    docker volume rm miVolumen
    

    advertencia Nota: Eliminar un volumen eliminará permanentemente todos los datos almacenados en él, y no hay forma de recuperarlos posteriormente.