Volver al blog

Cómo compartir datos entre un contenedor Docker y un host

Cómo compartir datos entre un contenedor Docker y un host

Introducción

Por lo general, los contenedores de Docker solo se ejecutan durante un cierto período de tiempo – el tiempo que se tarda en ejecutar el comando. Solo se puede acceder a los datos que están disponibles dentro del contenedor desde el propio contenedor durante el tiempo de ejecución.

Los volúmenes de Docker se pueden utilizar para acceder a los archivos fácilmente y almacenarlos durante un período más largo. Por ejemplo, si tiene un servidor web Nginx y desea almacenar los registros para auditorías, puede utilizar un volumen de Docker para almacenar los registros del contenedor en su máquina host.

En este tutorial, aprenderá cómo compartir datos entre el interior del contenedor de Docker y la máquina host. 

Requisitos previos

Para este tutorial, necesitará los siguientes requisitos previos:

Paso 1 – Montar un volumen de tipo bind

Puede crear un directorio llamado logs en el directorio de inicio de su usuario actual y realizar un montaje de tipo bind en /var/log/nginx en el contenedor de Nginx utilizando el siguiente comando:

Aquí tiene información más detallada sobre este comando:

  • --name=nginx asigna un nombre al contenedor para facilitar su referencia.
  • -d el argumento desvincula el proceso y lo ejecuta en segundo plano.
  • -v hostPath:containerPath asigna la ruta del host y la ruta del contenedor para realizar el montaje de tipo bind.
  • -p hostPort:containerPort el argumento asigna el puerto del contenedor al puerto del host.
  • nginx al final de la línea es el nombre de la imagen que se debe utilizar para iniciar el contenedor.
Nota: Utilice siempre / o ~/ para iniciar la ruta hostPath; de lo contrario, el argumento -v considerará que la ruta es el nombre del volumen y no realizará el montaje de tipo bind.

Paso 2 – Acceder a los datos en el host

Ahora, tiene un contenedor de Nginx ejecutándose en su servidor, y el puerto 5000 de su servidor se asigna al puerto 80 de Nginx. Puede abrir el puerto en el navegador web con la siguiente URL:

nginx homepage

En el directorio ~/logs, verá los archivos access.log y error.log. Puede ver los registros utilizando el comando cat:

También puede comprobar el directorio de registros ~/logs en su máquina host y encontrar el archivo de registros de Nginx. Además, si realiza algún cambio en la carpeta logs , también se reflejarán en la carpeta /var/log/nginx del contenedor.

Conclusión

En este tutorial, ha aprendido cómo compartir datos entre el interior del contenedor de Docker y la máquina host. Esto es esencial en entornos de desarrollo donde el análisis de registros es imprescindible para la depuración.

Para obtener más recursos sobre Docker en nuestro blog, puede consultar lo siguiente:

¡Feliz informática!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.