Cómo compartir datos entre un contenedor Docker y un sistema de host utilizando volúmenes

Cómo compartir datos entre un contenedor Docker y un sistema de host utilizando volúmenes

La forma más fácil de compartir datos entre un contenedor Docker y el sistema de host es utilizar los volúmenes de Docker. En esta guía, pasaremos por las instrucciones paso a paso de compartir archivos entre un contenedor Docker y un sistema de host utilizando volúmenes de Docker a través de la línea de comando en Linux.

SABÍAS?
Los volúmenes de Docker funcionan de manera similar a las monturas de enlace, pero son el método preferido para compartir datos entre un sistema de host y un contenedor Docker porque las aplicaciones externas no pueden acceder a los archivos y modificarlos.

En este tutorial aprenderás:

  • Cómo usar volúmenes para compartir datos entre un contenedor Docker y un sistema de host
Compartir datos del sistema host a un contenedor Docker Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de Linux
Software Estibador
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Compartir datos entre Docker Container y Host



Considere el siguiente ejemplo.

  1. Primero, en un sistema de host creamos un directorio con un solo archivo, nos gustaría compartirlo con un contenedor Docker:
    # mkdir data1 # echo "Docker Volume Share"> data1/file1 
  2. A continuación, ejecutamos un contenedor Docker y usamos el -V Opción para montar un directorio de sistema de host local Data1 en el directorio del contenedor /opt/data1. Tenga en cuenta que si el destino no existe, será creado por el comando Docker. Además, Docker solo acepta una ruta completa hacia un directorio de sistema de host local y, por esta razón, necesitamos prefijo el Datos1 directorio con $ PWD/ Variable de entorno que devuelve una ruta completa a un directorio de trabajo actual:
    # Docker Run -v $ pwd/data1:/opt/data1 -it Debian/bin/bash 
  3. El resultado del comando anterior es que ahora podemos acceder a nuestro archivo creado previamente archivo1 desde dentro de un contenedor:
    # Cat/Opt/Data1/File1 Compartir volumen de Docker 

Eso es todo al respecto. Ahora puede compartir cualquier archivo que desee entre el sistema de host y los contenedores Docker utilizando el volumen montado. Si se encuentra con algún error, consulte la sección de solución de problemas a continuación.

Conclusión

En esta guía, aprendimos a compartir datos entre un sistema host y Docker Container utilizando volúmenes. Esta es la mejor y más fácil forma de compartir datos entre los dos sistemas en Linux, solo que requiere unos pocos pasos cortos.



Solución de problemas

Si se encuentra con el siguiente error:

FATA [0000] Respuesta de error de Daemon: No se puede vincular el volumen de montaje: Data1 Las rutas de volumen deben ser absolutas. 

Esto significa que debe proporcionar una ruta completa a los directorios de origen y de destino. Sugerencia: el camino completo siempre comienza con /.

También puede encontrar este error de permiso denegado:

# ls/opt/data1/ls: no se puede abrir directorio/opt/data1/: permiso denegado 

Este error es causado por Selinux que se ejecuta en su sistema de host local. Las siguientes dos soluciones ayudarán a resolver este problema. Primero, la solución es deshabilitar Selinux en su sistema de host local.

# setenforce 0 

Dado que deshabilitar el Selinux puede obstaculizar una integridad de su sistema de host, puede ser más fácil dar un privilegio extendido a su contenedor, con un Docker --privilegiado = verdadero opción:

# Docker Run --Privileged = true -v $ pwd/data1:/opt/data1 -it debian/bin/bash 

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Mastering Bash Script Loops
  • Ubuntu 20.04 Guía
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cómo arrancar dual Kali Linux y Windows 10
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
  • Ubuntu 20.04 trucos y cosas que quizás no sepas