Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

514
Vistas
¿Cómo funcionan los volúmenes con nombre en Docker?

Me cuesta entender cómo funciona exactamente el volumen con nombre en el siguiente ejemplo de docker docs :

 version: "3" services: db: image: db volumes: #1 - data-volume:/var/lib/db backup: image: backup-service volumes: #2 - data-volume:/var/lib/backup/data volumes: data-volume:

Mi conjetura es que la primera aparición del volumen con nombre (# 1) define lo que está contenido dentro del volumen, mientras que las ocurrencias posteriores (# 2) simplemente comparten el contenido del volumen con los contenedores desde los que se hace referencia.

¿Es correcta esta conjetura?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Listado data-volume: debajo de los volumes: la clave crea un volumen con nombre en el host si aún no existe. Esto se comporta de la siguiente manera según esta fuente

  1. Si crea un volumen con nombre ejecutando un nuevo contenedor desde image by docker run -v my-precious-data:/data imageName , los datos dentro de la imagen/contenedor bajo /data se copiarán en el volumen con nombre.

  2. Si crea otro contenedor vinculado a un volumen con nombre existente, no se copiarán/sobrescribirán archivos de la nueva imagen/contenedor, utilizará los datos existentes dentro del volumen con nombre.

  3. No tienen un comando docker para hacer una copia de seguridad/exportar un volumen con nombre. Sin embargo, puede averiguar la ubicación real del archivo mediante "docker volume inspect [volume-name]".

En caso de que el volumen esté vacío y ambos contenedores tengan datos en el directorio de destino, el primer contenedor que se ejecutará montará sus datos en el volumen y el otro contenedor verá esos datos (y no los suyos). No sé qué contenedor se ejecutará primero (aunque espero que se ejecute de arriba a abajo), sin embargo, puede forzar un pedido con depends_on como se muestra aquí .

------------------- Actualizar

La opción depend_on se ignora cuando se implementa una pila en modo de enjambre con un archivo Compose de la versión 3.

about 4 years ago · Santiago Trujillo Denunciar

0

De la forma en que entiendo tu conjetura, no estás completamente en lo cierto.

Declarar y hacer referencia a un volumen con nombre en un archivo docker-compose creará un volumen vacío al que luego podrán acceder y compartir los servicios diciéndolo en su sección de volúmenes.

Si desea compartir un volumen con nombre, debe declarar este volumen en la sección de volumen de nivel superior de su archivo docker-compose. Ejemplo (como en los documentos de la ventana acoplable ya vinculados por usted mismo):

 version: "3" services: db: image: db volumes: #1 uses the named and shared volume 'data-volume' created with #3 - data-volume:/var/lib/db backup: image: backup-service volumes: #2 uses the named and shared volume 'data-volume' created with #3 - data-volume:/var/lib/backup/data volumes: #3 creates the named volume 'data-volume' data-volume:

El volumen estará vacío al inicio (y por lo tanto las carpetas en los contenedores donde se monta ese volumen). Su contenido será el resultado de las acciones de los servicios en tiempo de ejecución.

Espero haberlo dejado un poco más claro.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda