69
En el mundo de los contenedores de Docker, el comando de volumen de Docker se destaca como una herramienta crucial para la gestión de datos. Los volúmenes de Docker son volúmenes locales diseñados para conservar los datos y proporcionar acceso compartido a estos datos de volumen entre varios contenedores. Tanto si es un principiante que explora cómo crear un volumen con el volumen docker crear o un desarrollador experimentado que administre volúmenes de Docker de var lib, comprender los volúmenes de Docker es indispensable.
Controladores de volumen Docker
La versatilidad de los volúmenes de Docker se puede atribuir a los controladores de volumen. Un controlador de volumen permite que un volumen se aloje fuera del host de Docker, como en un servidor de red o un proveedor de nube. El local El controlador, que es el controlador predeterminado, crea volúmenes en el almacenamiento local del host de Docker.
Volumen de Docker frente a montajes de enlace
Antes de profundizar en los volúmenes de Docker, es necesario diferenciarlos de los montajes de enlace en un contenedor de Docker. Si bien ambos métodos le permiten compartir datos entre el host y el contenedor, tienen diferentes propósitos.
Docker administra los volúmenes de Docker y los almacena en el directorio de volúmenes de datos de Docker, mientras que los montajes de enlace se basan en la estructura de directorios del sistema de archivos del host. Los montajes de enlace pueden ser apropiados para casos de uso específicos, como compartir archivos de configuración. Al mismo tiempo, los volúmenes de Docker generalmente se prefieren para conservar datos y compartirlos entre múltiples contenedores para volúmenes de datos.
Trabajando con Múltiples Contenedores y Volúmenes de Docker
El intercambio de datos se realiza sin problemas a través de los volúmenes de Docker. Pueden compartir datos de manera eficiente conectando varios contenedores al mismo volumen de datos. Por ejemplo, puede tener un contenedor NGINX que sirva un sitio web y un contenedor de registro separado. Ambos pueden acceder a los mismos archivos de registro conectando estos contenedores al mismo volumen.
Navegación por los comandos de volumen de Docker
Los comandos de la CLI de Docker ofrecen una forma intuitiva de administrar los volúmenes de Docker. El volumen docker crear El comando es su punto de partida para crear nuevos volúmenes, mientras que volumen acoplable ls le permite enumerar todos los volúmenes. Al inspeccionar los detalles del volumen, Inspección de volumen de la ventana acoplable Viene muy bien. Si los volúmenes no utilizados ocupan espacio, reducción de volumen de Docker puede ayudarte a limpiar.
Si ejecuta el volumen de la ventana acoplable comando, puede ver fácilmente todos los comandos asociados relevantes:
Ejecutando el comando de volumen de Docker
Garantía de almacenamiento persistente con volúmenes de Docker
Si ha estado preguntando cómo persistir los datos incluso después de que se detiene un contenedor, los volúmenes de Docker son la respuesta. Los datos generados dentro de un contenedor se pueden almacenar en volúmenes de Docker, asegurando que sobrevivan incluso si el contenedor no lo hace. Esto es diferente de la capa de escritura del contenedor, que se elimina cuando se elimina el contenedor.
Docker Volúmenes y Docker Compose
Docker compose simplifica significativamente la gestión de aplicaciones de varios contenedores. Definir y administrar volúmenes en su archivo Compose es común cuando se ejecuta Docker Compose. Esto agiliza aún más el proceso de compartir el mismo volumen de datos entre diferentes servicios.
A continuación se muestra un ejemplo del código de Docker Compose que activa un nuevo contenedor Pi-Hole. Observe la configuración del volumen en el archivo YML:
pihole: image: pihole/pihole:latest container_name: pihole ports: - "53:53/tcp" - "53:53/udp" dns: - 127.0.0.1 - 1.1.1.1 environment: TZ: 'America/Chicago' WEBPASSWORD: 'password' PIHOLE_DNS_: 1.1.1.1;9.9.9.9 DNSSEC: 'false' VIRTUAL_HOST: piholetest.cloud.local # Same as port traefik config WEBTHEME: default-dark PIHOLE_DOMAIN: lan volumes: - '~/pihole/pihole:/etc/pihole/' - '~/pihole/dnsmasq.d:/etc/dnsmasq.d/' restart: always networks: - traefik labels: - traefik.enable=true - traefik.http.routers.pihole.rule=Host(`piholetest.cloud.local`) - traefik.http.routers.pihole.tls=true - traefik.http.routers.pihole.entrypoints=websecure - traefik.http.services.pihole.loadbalancer.server.port=80
Ejemplos prácticos de línea de comandos con volúmenes Docker
La experiencia práctica con los comandos de la CLI de Docker para los volúmenes de Docker es crucial para dominar su uso. Veamos una serie de ejemplos que representan la aplicación real de estos comandos:
Creando un nuevo volumen:
Puede usar el comando de creación de volumen de Docker para crear un nuevo volumen. Vamos a crear un volumen llamado «mivolumen»:
docker volume create myvolume
Creación de un nuevo volumen de Docker
La salida será el nombre del volumen, es decir, «mivolumen». El comando Docker volume ls se puede usar para enumerar todos los volúmenes y verificar la creación de «myvolume»:
docker volume ls
Listado de los volúmenes de Docker en un host de Docker
Inspeccionar un volumen
El inspeccionar el volumen de la ventana acoplable El comando le permite ver más detalles sobre un volumen, como su punto de montaje y el controlador local utilizado. Aquí se explica cómo inspeccionar «myvolume»:
docker volume inspect myvolume
Ejecutar el comando de inspección de volumen de Docker
Ejecutar un contenedor con un volumen montado
Puede usar el comando de ejecución de Docker para iniciar un nuevo contenedor y montar «myvolume» en una ruta específica dentro del contenedor (por ejemplo, «/app»). Ejecutemos un contenedor de Ubuntu con «myvolume» montado:
docker run -d -v myvolume:/app ubuntu
El -v opción seguida de mivolumen:/aplicación especifica el punto de montaje dentro del contenedor de Ubuntu.
Compartiendo volúmenes a través de múltiples contenedores:
Demostremos cómo compartir «myvolume» en varios contenedores. Primero, escribiremos un archivo de prueba en el volumen del primer contenedor:
docker run --rm -v myvolume:/app ubuntu bash -c "echo 'Hello, World!' > /app/testfile"
A continuación, leeremos el archivo desde un nuevo contenedor:
docker run --rm -v myvolume:/app ubuntu cat /app/testfile
Eliminar un volumen de Docker
El comando para eliminar un volumen de Docker es el siguiente:
docker volume rm <volume name>
Eliminar un volumen de Docker
Limpieza de volúmenes no utilizados:
Con el tiempo, puede acumular volúmenes de Docker no utilizados que ocupan espacio de almacenamiento. Docker proporciona la reducción de volumen de Docker comando para eliminar todos los volúmenes locales anónimos no utilizados. Tenga en cuenta que esto solicitará confirmación ya que es una operación destructiva.
docker volume prune
Ejecutar el comando de reducción de volumen de Docker
Al familiarizarse con estos comandos, puede usar volúmenes de Docker de manera efectiva para administrar sus datos en contenedores de Docker.
Puntos clave a tener en cuenta
1. ¿Qué hace el comando de eliminación de volumen de la ventana acoplable?
El reducción de volumen de Docker El comando es una operación de mantenimiento que limpia los volúmenes de Docker no utilizados de su sistema. Esto es particularmente útil para liberar almacenamiento local que podrían consumir los volúmenes que ya no están asociados con un contenedor.
2. ¿Se pueden usar los volúmenes de Docker con Docker Compose?
Absolutamente, los volúmenes de Docker y Docker Compose van de la mano. Cuando está ejecutando Docker Compose, definir volúmenes en su archivo Docker Compose es bastante común. Esto ayuda a administrar mejor los volúmenes y agiliza el intercambio de datos entre múltiples servicios en su configuración de Docker Compose.
3. ¿Cómo funciona compartir volúmenes de Docker entre múltiples contenedores?
Los volúmenes de Docker permiten compartir datos entre múltiples contenedores sin problemas. Cuando el mismo volumen se adjunta a varios contenedores, los demás pueden acceder a los datos escritos en el volumen por un contenedor. Esto resulta útil en escenarios como el registro, donde es posible que varios contenedores necesiten escribir o leer desde los mismos archivos de registro.
4. ¿Cuál es la diferencia entre los volúmenes de Docker y los montajes de enlace?
Si bien tanto los volúmenes de Docker como los montajes de enlace permiten compartir datos entre el host y los contenedores, difieren en sus casos de administración y uso. Los volúmenes de Docker son administrados por Docker y almacenados en un directorio específico en el host. Por otro lado, los montajes de Bind se pueden almacenar en cualquier parte del sistema host y Docker no los administra. Esto hace que los volúmenes de Docker sean generalmente preferibles para administrar datos de aplicaciones, mientras que los montajes de enlace pueden ser más adecuados para casos específicos, como compartir archivos de configuración.
5. ¿Cuáles son los comandos CLI de Docker más comunes para la administración de volúmenes?
Algunos de los comandos CLI de Docker comúnmente utilizados para la administración de volúmenes incluyen volumen docker crear para crear un nuevo volumen, volumen acoplable ls para enumerar todos los volúmenes existentes, inspeccionar el volumen de la ventana acoplable para obtener información detallada sobre un volumen, y volumen acoplable rm para eliminar un volumen específico. reducción de volumen de Docker se utiliza para eliminar todos los volúmenes no utilizados del sistema.
6. ¿Pueden persistir los datos de un contenedor después de que se detiene?
Sí, con los volúmenes de Docker, la persistencia de datos es posible incluso después de que se detiene un contenedor. Todos los datos escritos en un volumen de Docker por un contenedor persisten en el volumen y se puede acceder a ellos cuando se reinicia el contenedor o incluso por otros contenedores.
7. ¿Cómo pueden ayudar los volúmenes de Docker con la gestión del almacenamiento local?
A través de controladores de volumen, los volúmenes de Docker pueden ofrecer una gestión de almacenamiento más flexible. Mientras que el valor predeterminado local El controlador almacena volúmenes en el almacenamiento local del host Docker, otros controladores pueden almacenar volúmenes en hosts remotos o proveedores de nube. Esto puede ayudar a administrar el almacenamiento local de manera más efectiva y ofrecer opciones adicionales para el almacenamiento de volumen y la redundancia de datos.
8. ¿Cómo puedo usar los volúmenes de Docker en la práctica?
Los usos prácticos de los volúmenes de Docker a menudo implican la creación de un volumen con volumen docker crearejecutando un nuevo contenedor con el volumen adjunto usando ejecución de la ventana acoplabley administrar el volumen con varios comandos, como volumen acoplable ls o volumen acoplable rm. Los volúmenes de Docker también se usan comúnmente en archivos de Docker Compose para administrar aplicaciones de varios contenedores. Los ejemplos incluyen ejecutar una base de datos y una aplicación en contenedores separados pero usando el mismo volumen para almacenar y acceder a los archivos de la base de datos.
Libere el poder de los volúmenes de Docker
Los volúmenes de Docker brindan capacidades de administración de datos a los contenedores de Docker. Desde los conceptos básicos del uso de la creación de volúmenes de Docker hasta la exploración de los volúmenes de Docker con ejemplos prácticos, está claro cuán integrales son los volúmenes de Docker para operaciones de contenedores efectivas. Ya sea que esté manteniendo un almacenamiento persistente, compartiendo datos entre contenedores o administrando volúmenes a través de los comandos de la CLI de Docker, el comando de volumen de Docker proporciona las herramientas necesarias.