GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo compartir datos entre contenedores Docker

Introducción

Docker permite a los usuarios ejecutar varias aplicaciones aisladas de la computadora host, sin la necesidad de tener sistemas operativos separados para que se ejecuten. En su lugar, instala y administra contenedores Docker con un motor de contenedores (demonio Docker), que tiene una función similar a la del hipervisor para máquinas virtuales.

A medida que comience a usar Docker, se enfrentará a situaciones en las que necesitará saber cómo compartir datos entre contenedores.

Requisitos previos

  • Un usuario con privilegios sudo
  • Acceso a una terminal/línea de comando
  • Una versión estable de Docker

Paso 1:crear un contenedor con volumen de datos

Para demostrar cómo compartir entre dos contenedores, debe crear un contenedor (Container1 ) con volumen de datos (datavolume1 ) luego puedes compartir.

1. Primero, cree un volumen independiente que compartirá entre dos contenedores Docker:

docker volume create --name DataVolume1

2. Luego, cree un contenedor Docker y asígnele el nombre Container1 con volumen de datos adjunto ejecutando el siguiente comando:

docker run -ti --name=Container1 -v DataVolume1:/datavolume1 ubuntu

2. A continuación, cree un archivo en el volumen de datos y agréguele texto:

echo "Share this file between containers" > /datavolume1/Example.txt

3. Salga del contenedor con el comando:exit

Paso 2:Cree un nuevo contenedor y agréguelo al volumen de datos

A continuación, cree un nuevo contenedor (Container2 ) que compartirá archivos con Container1 .

1. Crear Contenedor2 y monte los volúmenes desde Container1 :

docker run -ti --name=Container2 --volumes-from Container1 ubuntu

2. Agregue texto desde Container2 para mostrar que ambos contenedores pueden escribir en DataVolume1 :

echo "This will also appear in DataVolume1" >> /datavolume1/Example.txt

3. Para salir del Contenedor2 usa el comando:exit

Paso 3:Verifique que puede compartir datos entre contenedores Docker

1. Reinicie Contenedor1 para comprobar los cambios en el volumen de datos:

docker restart Container1

2. Confirme que ambos contenedores pueden leer y escribir en el mismo volumen de datos y que el texto que escribió en Container2 aparece en DataVolume1 :

cat /datavolume1/Example.txt

Si el texto se agregó con éxito al volumen de datos, la salida debería mostrar lo siguiente:

Share this file between containers
This will also appear in DataVolume1

3. Para terminar, sal del contenedor con el comando:exit

Opcional:crear volúmenes de solo lectura

La creación de un contenedor Docker de "solo lectura" evita que otros realicen cambios en los datos, permitiéndoles solo ver los archivos.

Añadir :ro al nombre del contenedor que debe compartirse pero no modificarse.

En el siguiente ejemplo, Contenedor2 podrá ver archivos de Container1 pero no podrá editarlos.

docker run -ti --name=Container2 --volumes-from Container1:ro ubuntu

Para comprobar si Container2 tiene privilegios de solo lectura, intente eliminar el archivo de ejemplo de Container1 ejecutando el comando:

rm /datavolume1/Example.txt

El resultado debería mostrar que ha creado correctamente un archivo de solo lectura. En consecuencia, otros contenedores pueden acceder y ver los datos, pero no pueden realizar ninguna contribución ni modificarlos.


Ubuntu
  1. Cómo compartir datos entre contenedores Docker en Ubuntu 22.04

  2. Cómo usar Docker Compose

  3. Cómo conectar contenedores Docker

  4. Cómo pasar variables de entorno a contenedores Docker

  5. Cómo compartir datos entre contenedores Docker

Cómo instalar Docker Portainer para administrar contenedores

Cómo reducir el tamaño de la imagen de Docker en los contenedores de Docker

Cómo ejecutar contenedores Docker

Cómo eliminar contenedores Docker

Cómo detener los contenedores de Docker

Cómo gestionar contenedores Docker