Características de los volúmenes de Docker
- Compartir datos de volumen y almacenamiento entre varios contenedores y sistemas de archivos de host.
- Desacoplamiento de contenedores del almacenamiento.
- No elimina los datos contenidos al eliminar el contenedor.
- Realice copias de seguridad, restaure y migre datos fácilmente.
En este tutorial, explicaremos qué es un volumen Docker y cómo usarlo, así como cómo montar un volumen en Docker.
Requisitos
- Un sistema que ejecuta Linux con Docker instalado.
- Se configura una contraseña de root.
Sintaxis básica del volumen de Docker
Puede usar el comando "docker volume" para ver todas las opciones disponibles con volumen:
volumen de la ventana acoplableDebería ver el siguiente resultado después de ingresar el comando anterior:
Uso: COMANDO de volumen de la ventana acoplableGestionar volúmenes
Comandos:
crear Crea un volumen
inspeccionar Muestra información detallada sobre uno o más volúmenes
ls Lista de volúmenes
podar Eliminar todos los volúmenes locales no utilizados
rm Eliminar uno o más volúmenes
Ejecute 'docker volume COMMAND --help' para obtener más información sobre un comando.
Crear un volumen
Para crear un volumen de datos, primero deberá crear un volumen de datos en el host de Docker y adjuntar el volumen al contenedor.
Puede crear un volumen de Docker con el comando "docker volume create.”Por ejemplo, use el siguiente comando para crear un nuevo volumen de Docker llamado myvolume:
docker volume crear myvolumeDebería ver el siguiente resultado:
mi volumenPuede enumerar su volumen existente usando el siguiente comando:
docker volume lsDebería ver el siguiente resultado:
NOMBRE DEL VOLUMEN DEL CONDUCTORlocal c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
myvolume local
Si desea ver más información sobre el volumen, ejecute el siguiente comando:
Docker inspeccionar myvolumeDebería obtener el siguiente resultado después de ejecutar el comando anterior:
["CreatedAt": "2020-09-12T04: 51: 31Z",
"Driver": "local",
"Etiquetas": ,
"Punto de montaje": "/ var / lib / docker / volume / myvolume / _data",
"Nombre": "myvolume",
"Opciones": ,
"Alcance": "local"
]
Montar un volumen
En este punto, tiene un volumen llamado myvolume. En este ejemplo, creará un contenedor y montará un myvolume en el contenedor.
Puede usar la opción -mount para montar el volumen. La sintaxis básica para montar el volumen en el contenedor se muestra a continuación:
docker run --mount source = volume-name, destination = path-inside-container docker-imagesPor ejemplo, para crear un contenedor de Ubuntu y montar myvolume en el contenedor, ejecute el siguiente comando:
docker run -it --name = volumecontainer --mount source = myvolume, destination = / data ubuntuEste comando extraerá la imagen de Ubuntu del Docker Hub, iniciará el contenedor en modo interactivo con el nombre volumecontainer y montará el contenedor myvolume en / data dentro del directorio / data:
No se puede encontrar la imagen 'ubuntu: último' localmenteúltimo: Extrayendo de la biblioteca / ubuntu
54ee1f796a1e: Extracción completa
f7bfea53ad12: Extracción completa
46d371e02073: Tire completo
b66c17bbf772: Extracción completa
Resumen: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Estado: imagen más reciente descargada para ubuntu: última
root @ 06a477c4e444: / #
Puede verificar el volumen montado con el siguiente comando:
[correo electrónico protegido]: / # lsDebería ver el directorio de datos en la siguiente salida:
bin boot data dev etc home lib lib32 lib64 libx32 media mntopt proc root ejecutar sbin srv sys tmp usr var
Ahora, crearemos un archivo de muestra llamado archivo.txt dentro del directorio / data con el siguiente comando:
echo "Este es un archivo de prueba!"> / datos / archivo.TXTSalga del contenedor con el siguiente comando:
SalidaInicie el mismo contenedor nuevamente con el siguiente comando:
Contenedor de volumen de inicio de contenedor DockerA continuación, adjunte el contenedor en ejecución con el siguiente comando:
docker exec -it volumecontainer / bin / bashCompruebe si su archivo.txt es persistente con lo siguiente:
cat datos / archivo.TXTDebería obtener el siguiente resultado después de ingresar el comando anterior:
Este es un archivo de prueba!
Compartir datos entre contenedores
También puede compartir datos entre varios contenedores mediante el volumen de Docker.
Como saben, hemos creado un volumen llamado myvolume, un nuevo contenedor llamado volumecontainer usando este volumen. También hemos creado un archivo llamado archivo.txt dentro del volumen.
Ahora, crearemos otro contenedor llamado volumecontainer1 con el mismo volumen myvolume usando el siguiente comando:
docker run -it --name = volumecontainer1 --mount source = myvolume, destination = / data ubuntuEjecute el comando ls, como se muestra a continuación:
lsDebería ver el directorio de datos en la siguiente salida:
bin boot data dev etc home lib lib32 lib64 libx32media mnt opt proc root ejecutar sbin srv sys tmp usr var
Ejecute el siguiente comando para verificar el archivo.TXT:
cat / datos / archivo.TXTDebería ver el mismo contenido que creó en el contenedor anterior:
Este es un archivo de prueba!
Montar directorio como un volumen
Puede usar el directorio ubicado dentro de su sistema host de Docker como un volumen y montarlo en el contenedor. También puede usar la opción -v para lograr lo mismo, como se muestra a continuación:
docker run -v "nombre_directorio": nombre_volumen docker_imageCree un directorio llamado / data dentro del host de Docker con el siguiente comando:
mkdir / DatosA continuación, cree algunos archivos dentro del directorio / Data:
cd / Datostoque file1.txt file2.txt file3.TXT
Cree un nuevo contenedor usando el directorio / Data como un volumen con el siguiente comando:
docker run -it --name = data1 -v / Data: / Data ubuntuEste comando creará un nuevo contenedor y montará el volumen con el nombre / Data.
Ejecute el siguiente comando para verificar el contenido del directorio / Data:
ls -l / Datos /Debería ver todos los archivos que hemos creado previamente en el sistema host, como se muestra a continuación:
total 0-rw-r - r-- 1 raíz raíz 0 12 de septiembre 05:41 archivo1.TXT
-rw-r - r-- 1 raíz raíz 0 12 de septiembre 05:41 archivo2.TXT
-rw-r - r-- 1 raíz raíz 0 12 de septiembre 05:41 archivo3.TXT
Eliminar el volumen de Docker
Puede eliminar o quitar fácilmente el volumen con la siguiente sintaxis:
docker volume rm nombre-volumenPor ejemplo, para eliminar el volumen llamado myvolume, ejecute el siguiente comando:
docker volume rm myvolumeDebería obtener el siguiente error:
Respuesta de error del demonio: eliminar myvolume:el volumen está en uso - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Esto se debe a que el contenedor usa su volumen. Por lo tanto, deberá detenerse y quitar el recipiente antes de quitar el volumen.
Para detener y eliminar el contenedor, ejecute el siguiente comando:
Contenedor Docker Volumen de tope Volumen del contenedor Contenedor1docker contenedor rm volumecontainer volumecontainer1
Ahora, puedes quitar fácilmente el volumen.
Conclusión
En la guía anterior, aprendió qué es el volumen de Docker, cómo crearlo y cómo montarlo dentro del contenedor. También aprendió a compartir datos entre varios contenedores usando el volumen.