Solución:
los cp
El comando se puede utilizar para copiar archivos.
Un archivo específico se puede copiar al contenedor como:
docker cp foo.txt mycontainer:/foo.txt
Se puede copiar un archivo específico DESDE el contenedor como:
docker cp mycontainer:/foo.txt foo.txt
Para enfatizar, mycontainer
es un envase IDENTIFICACIÓN, no un imagen IDENTIFICACIÓN.
Varios archivos contenidos por la carpeta src
se puede copiar en el target
carpeta usando:
docker cp src/. mycontainer:/target
docker cp mycontainer:/src/. target
Referencia: Docker CLI docs para cp
En las versiones de Docker anteriores a la 1.8, solo era posible copiar archivos de un contenedor al host. No del anfitrión a un contenedor.
-
Obtenga el nombre del contenedor o la identificación corta del contenedor:
$ docker ps
-
Obtenga la identificación completa del contenedor:
$ docker inspect -f '{{.Id}}' SHORT_CONTAINER_ID-or-CONTAINER_NAME
-
Copiar archivo:
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
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
$ docker inspect -f '{{.Id}}' d8e703d7e303
d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5**/root/file.txt
La forma más limpia es montar un directorio de host en el contenedor al iniciar el contenedor:
{host} docker run -v /path/to/hostdir:/mnt --name my_container my_image
{host} docker exec -it my_container bash
{container} cp /mnt/sourcefile /path/to/destfile