Esta traducción de: Copia de archivos de anfitrión para Container acoplable
Estoy tratando de construir una copia de seguridad y solución para los contenedores de Docker que trabajamos restauración. Estoy tratando de construir una copia de seguridad y solución para envases que utilizamos Docker restauración.
Acoplable imagen base que tiene tener el que la he he lo creado, ubuntu:base
, quiero y no tienen que reconstruir el uno sea un momento con el cargador de muelle de archivos para el Agregar archivos a la misma. Imagen de base acoplable Tengo que he creado ubuntu:base
, y no quiero tener que usar todos reconstrucción archivo acoplable para agregarlo al archivo.
La quiero a la crear un script que se extiende desde en el host de la máquina y crea un nuevo Contenedor nuevo un uso en el ubuntu:base
estibador de imágenes ya las copias luego archivos en ese contenedor. Quiero crear una desde un host script se está ejecutando, y el uso ubuntu:base
de crear una nueva imagen de envase acoplable y luego copiar el archivo en el contenedor.
¿Cómo puedo copiar archivos desde el host al contenedor? ¿Cómo copiar archivos desde el host al contenedor?
# 1 planta
Referencia: https://stackoom.com/question/1Y7DT/ para copiar archivos desde el host a los contenedores de Docker
Casa # 2
La siguiente es una manera muy fea para hacer esto, pero puede funcionar.
docker run -i ubuntu /bin/bash -c 'cat > file' < file
Casa # 3
La solución se da a continuación, la solución es la siguiente:
A partir de la cáscara del estibador, 在中acoplable Shell,
root@123abc:/root# <-- get the container ID
Desde el host del host
cp thefile.txt /var/lib/docker/devicemapper/mnt/123abc<bunch-o-hex>/rootfs/root
El archivo se puede copiar directamente en el lugar en el que el contenedor se sienta en el sistema de archivos. Este archivo se debe copiar directamente a la ubicación del contenedor en el sistema de archivos.
# 4 piso
Yo simplemente copiar el archivo directamente desde donde el contenedor se encuentra desde el ordenador central. Acabo de copiar los archivos desde la ubicación en el contenedor directamente desde el host.
Por ejemplo: Por ejemplo:
Primero busque el identificador del contenedor: primero identificar el número del contenedor:
root@**3aed62678d54**:/home#
Y luego desde el host, vamos a dicen que el archivo está en el directorio de inicio: a continuación, se encuentra en el directorio principal del anfitrión, asumirá el archivo:
root@saasdock:/home/dnepangue# cp cheering_nasa.gif /var/lib/docker/aufs/mnt/**3aed62678d54**a5df47a4a00a58bb0312009c2902f8a37498a1427052e8ac454b/home/
Volver al contenedor ... de nuevo en el contenedor ...
root@**3aed62678d54**:/home# ls cheering_nasa.gif
Casa # 5
Obtener nombre del contenedor o corto Identificación del contenedor: obtener el nombre del contenedor o un corto de identificación de contenedores:
$ docker ps
Obtener completa Identificación del contenedor: obtener el ID de contenedor completo:
$ docker inspect -f '{{.Id}}' SHORT_CONTAINER_ID-or-CONTAINER_NAME
Copiar el archivo: Copiar el archivo:
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
Ejemplo: Por ejemplo:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare
$ docker inspect -f '{{.Id}}' cranky_pare
o bien
$ docker inspect -f '{{.Id}}' d8e703d7e303
d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5**/root/file.txt
Casa # 6
La mejor manera de copiar el archivo en el contenedor que he encontrado es usar un comando de marcha ventana acoplable -v
opción de instalar el directorio en el host.