Estoy intentando crear una solución de copia de seguridad y restauración para los contenedores Docker con los que trabajamos.
Tengo una imagen base Docker que he creado, ubuntu:base
, y no quiero tener que reconstruirla cada vez con un archivo Docker para añadirle archivos.
Quiero crear un script que se ejecute desde la máquina anfitriona y cree un nuevo contenedor utilizando la imagen Docker ubuntu:base
y luego copie los archivos en ese contenedor.
¿Cómo puedo copiar los archivos desde el host al contenedor?
La solución se da a continuación,
root@123abc:/root# <-- get the container ID
cp thefile.txt /var/lib/docker/devicemapper/mnt/123abc<bunch-o-hex>/rootfs/root
*El archivo se copiará directamente en la ubicación donde se encuentra el contenedor en el sistema de archivos.
Simplemente copio el archivo directamente desde donde se encuentra el contenedor desde la máquina anfitriona.
Por ejemplo:
Primero averigua el id del contenedor:
root@**3aed62678d54**:/home#
Y luego desde el host, digamos que el archivo está en el directorio principal:
root@saasdock:/home/dnepangue# cp cheering_nasa.gif /var/lib/docker/aufs/mnt/**3aed62678d54**a5df47a4a00a58bb0312009c2902f8a37498a1427052e8ac454b/home/
De vuelta al contenedor...
root@**3aed62678d54**:/home# ls cheering_nasa.gif