Crear contenedores con Ruta del Host
En muchos casos, no estamos acostumbrados a utilizar volúmenes de datos, sino que, en cambio, utilizamos directamente el directorio nativo para la persistencia de datos. En esta sección, utilizaremos el directorio nativo para crear contenedores.
Objetivo
Tu objetivo es crear un contenedor que utilice Ruta del Host
, luego copiar los archivos locales al contenedor y verificar que los archivos en ese contenedor sean los mismos que los de la Ruta del Host
.
Ejemplo de resultado
A continuación, se muestra un ejemplo de lo que deberías ser capaz de lograr al final de este desafío:
- Crear un directorio
nginx
en el directorio /tmp
.
labex:/tmp/ $ ls | grep nginx
nginx
- Iniciar el contenedor
nginx-host
basado en la imagen de nginx
que monta el directorio /tmp/nginx
en el directorio /usr/share/nginx/html
del contenedor.
labex:/tmp/ $ docker ps | grep nginx-host
6fc2d40e12df nginx "/docker-entrypoint.…" 44 segundos atrás Up 43 segundos 80/tcp nginx-host
- Verificar los detalles de montaje específicos con el comando
docker inspect
.
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/nginx",
"Destination": "/usr/share/nginx/html",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
- Crear un archivo local llamado
nginx.txt
con el contenido hello nginx
.
labex:/tmp/ $ pwd
/tmp
labex:/tmp/ $ cat nginx.txt
hello nginx
- Copiar el archivo
nginx.txt
al directorio /usr/share/nginx/html
del contenedor nginx-host
.
labex:nginx/ $ docker exec nginx-host cat /usr/share/nginx/html/nginx.txt
hello nginx
- Verificar el directorio
/tmp/nginx
en la máquina local para ver si hay un archivo nginx.txt
.
labex:nginx/ $ pwd
/tmp/nginx
labex:nginx/ $ cat nginx.txt
hello nginx
Requisitos
Para completar este desafío, necesitarás:
- Conocer la
Ruta del Host
que deseas utilizar.
- Saber cómo utilizar algunos comandos relevantes dentro del contenedor para verificar si se puede acceder al directorio o archivo del host.
- Saber cómo iniciar el contenedor utilizando la Ruta del Host.
- Estar familiarizado con los comandos básicos de Linux, como
cd
, mkdir
, touch
, etc.