GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Explicación de los volúmenes de Docker con ejemplos

En el caso de Docker , los datos se almacenarán dentro del contenedor. Y cuando eliminemos el contenedor se perderán los datos. En esta guía, aprenderemos cómo crear volúmenes docker, cómo adjuntarlos a los contenedores y cómo se puede compartir el mismo volumen entre dos o más contenedores para almacenar los datos.

Si aún no conoce los conceptos básicos de Docker, consulte la siguiente guía:

  • Primeros pasos con Docker

¿Por qué necesitamos volúmenes para Docker?

  • Al eliminar contenedores, los volúmenes no se eliminarán.
  • Adjuntar o separar volumen de los contenedores.
  • Compartir volúmenes (almacenamiento/datos) entre diferentes contenedores.
  • Desvincular los contenedores del almacenamiento.
  • Almacene el volumen en un host remoto o en la nube.

Podemos tener una división lógica de los datos así como del contenedor. Podemos conservar los datos de forma que si eliminamos
el contenedor entonces también nuestros datos estarán presentes. Entonces, después de destruir el contenedor, podemos adjuntar el volumen a cualquier contenedor existente, así como a contenedores nuevos.

Primeros pasos con los volúmenes de Docker

El volumen de la ventana acoplable El comando mostrará los detalles de los comandos de volumen mediante los cuales podemos crear un volumen, inspeccionar los datos detallados del volumen, enumerar los volúmenes disponibles y eliminar los volúmenes.

# docker volume

Muestra la sección de ayuda del comando "docker volume"

Creación de volúmenes Docker

La sintaxis para crear un volumen docker es:

docker volume create <volume_name>

Ejemplo:

# docker volume create devops_volume

El comando anterior creará un volumen docker llamado devops_volume .

crear volumen acoplable

Lista de volúmenes de Docker

Para listar todos los volúmenes docker creados, ejecute:

# docker volume ls

enumerar los volúmenes de la ventana acoplable

Inspeccionar los volúmenes de la ventana acoplable

La inspección de volumen de la ventana acoplable El comando le dará los detalles sobre la creación del volumen, la ubicación, el nombre y el alcance.

Sintaxis:

docker volume inspect <volume_name>

Permítanme mostrarles los detalles de un volumen docker llamado devops_volume .

# docker volume inspect devops_volume

inspeccionar los volúmenes de la ventana acoplable

Crear contenedores con el volumen adjunto a ellos

Sintaxis:

docker container create --name <container_name> -it --mount source<volume_name>,target=/<folder_Name> <image_name>

Ejemplo:

# docker container create --name myBusyBox1 -it --mount source=devops_volume,target=/app busybox

crea un contenedor con el volumen adjunto

Para verificar si el contenedor se ha creado o no, use docker ps -a comando:

salida del comando "docker ps"

Contenedores iniciales

Para iniciar el contenedor recién creado, por ejemplo, myBusyBox1 , ejecuta:

# docker container start myBusyBox1

iniciar contenedores docker

Como puede ver en la captura de pantalla anterior, el contenedor myBusyBox1 se creó hace 8 minutos y comenzó hace 6 segundos.

Copiar archivos entre contenedores desde un volumen compartido

Creemos un escenario en el que crearemos el archivo en un contenedor en la ubicación compartida e intentaremos acceder al archivo desde otro contenedor.

Ya hemos creado un contenedor llamado myBusyBox1. Vamos a crear otro, por ejemplo myBusyBox2 .

crear un contenedor

Ahora tenemos dos contenedores en estado de ejecución, myBusyBox1 y myBusyBox2.

Conectémonos al primer contenedor y creemos un archivo dentro de /app carpeta.

# docker exec -it myBusyBox1 sh

El comando anterior lo llevará dentro del contenedor.

Luego, crea una nueva carpeta llamada devops dentro de la carpeta /app y salga del primer contenedor.

conectarse al primer contenedor

Ahora, copie un archivo, por ejemplo index.html , del sistema local a la ubicación /app/devops/ del contenedor myBusyBox1.

# docker container cp index.html myBusyBox1:/app/Devops

Ahora conéctese a otro segundo contenedor, es decir, myBusyBox2 y verifique que dentro de /app/devops carpeta el index.html el archivo está presente o no.

# docker exec -it myBusyBox2 sh

conectarse al segundo contenedor

A partir de la captura de pantalla anterior, se confirma que ambos contenedores comparten el mismo volumen.

Podemos verificar la ubicación del punto de montaje del volumen usando docker volume inspect comando como a continuación:

# docker volume inspect devops_volume

docker inspeccionar comando de volumen

Como puede ver, la ubicación del punto de montaje es /var/lib/docker/volumes/devops_volume/_data .

Vayamos a la ubicación del punto de montaje y veamos si el archivo copiado está disponible o no.

punto de montaje de los volúmenes de la ventana acoplable

En la ubicación de Mountpoint encontramos el mismo archivo.

Eliminar volúmenes de la ventana acoplable

La sintaxis para eliminar un volumen es:

docker volume rm <volume_name>

Eliminemos el volumen llamado devops_volume .

# docker volume rm devops_volume

eliminar un volumen docker

En la captura de pantalla anterior, estamos tratando de eliminar el volumen pero no podemos hacerlo porque el volumen ya está en uso. Entonces, en primer lugar, debemos matar el contenedor y liberar el volumen. Y luego podemos eliminar el volumen.

Para hacerlo, primero elimine todos los contenedores en ejecución usando el comando:

# docker rm –f $(docker ps -aq)

Y luego quita el volumen:

# docker volume rm devops_volume

eliminar volúmenes de la ventana acoplable

Eliminar todos los volúmenes a la vez

Usando docker rm comando, podemos eliminar un volumen a la vez. Si tenemos varios volúmenes y queremos eliminar todos los volúmenes, debemos usar prune comando.

Vamos a crear algunos volúmenes:

crear volúmenes acoplables

Ahora elimine todos los volúmenes de la ventana acoplable a la vez usando el comando:

# docker volume prune

eliminar todos los volúmenes de la ventana acoplable a la vez

¿Ver? Hemos eliminado todos los volúmenes de una sola vez.

Lectura sugerida:

  • Explicación de los conceptos de red de Docker
  • Cómo actualizar automáticamente los contenedores de Docker en ejecución
  • ctop:una herramienta de supervisión de línea de comandos para contenedores de Linux
  • Portainer:la forma más sencilla de administrar Docker
  • PiCluster:una sencilla aplicación de gestión de Docker basada en web
  • Dockly:administrar contenedores Docker desde la terminal

Sobre el autor:

Dhruv Tiwari es un ingeniero de DevOps al que le encanta automatizar cosas, trabajar con Linux a escala y sueña con el día en que los sistemas sean lo suficientemente inteligentes como para no tener que iniciar sesión en una caja de Linux. Viaje de CI/CD desde el código fuente hasta la implementación del código y la producción.


Docker
  1. ¿Qué es Docker? Aprenda a usar contenedores:explicado con ejemplos

  2. Registros de Docker:qué son y cómo usarlos (con ejemplos)

  3. Creación de volúmenes lógicos en Linux con LVM

  4. Cómo instalar Jenkins con Docker

  5. Comprender los volúmenes de Docker

Comando Netcat (nc) con ejemplos

15 comandos ps de Linux con ejemplos

Explicación de los conceptos de red de Docker

Mejore su juego DevOps con estos ejemplos de ejecución de Docker

Cómo ejecutar Jenkins en Docker usando Docker Compose con Volúmenes

20 ejemplos útiles de comandos de volumen de Docker para desarrolladores modernos