GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo copiar archivos entre el host y el contenedor Docker

El comando Docker cp es una utilidad útil que permite copiar archivos y carpetas entre un contenedor y el sistema host.

Si desea copiar archivos de su sistema host al contenedor, debe usar el comando docker cp como este:

docker cp host_source_path container:destination_path

Si desea copiar archivos del contenedor al sistema host, use este comando:

docker cp container:source_path host_destination_path

Eso puede parecer un poco intimidante, así que déjame explicártelo con algunos ejemplos prácticos.

Ejemplos de comandos de Docker cp

En mi tutorial, instalé Docker en Ubuntu. Pero los pasos son los mismos para todas las distribuciones que ejecutan Docker.

Espero que sepa cómo ejecutar un contenedor docker porque necesitará un contenedor en ejecución.

Enumere sus contenedores en ejecución primero usando docker ps comando:

[email protected]:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8353c6f43fba        775349758637        "bash"              8 seconds ago       Up 7 seconds                            ubu_container

Debe saber el ID del contenedor o el nombre del contenedor. En mi caso, el nombre del contenedor docker es ubu_container . y el ID del contenedor es 8353c6f43fba .

Si desea verificar que los archivos se copiaron correctamente, puede ingresar a su contenedor de la siguiente manera y luego usar los comandos regulares de Linux:

docker exec -it ubu_container bash

1. Copie archivos del sistema host al contenedor docker

Copiar con docker cp es similar al comando de copia en Linux.

Voy a copiar un archivo llamado a.py en el directorio home/dir1 del contenedor.

docker cp a.py ubu_container:/home/dir1

Si el archivo se copia con éxito, no verá ningún resultado en la pantalla. Si la ruta de destino no existe, verá un error:

[email protected]:~$ sudo docker cp a.txt ubu_container:/home/dir2/subsub
Error: No such container:path: ubu_container:/home/dir2

Si el archivo de destino ya existe, se sobrescribirá sin previo aviso.

También puede usar la ID del contenedor en lugar del nombre del contenedor:

docker cp a.py 8353c6f43fba:/home/dir1
Docker Run vs Start vs Create:diferencia explicada Para un principiante de docker, términos como docker start, docker run y docker create pueden ser confusos. Este artículo explica la diferencia con ejemplos. Manual de LinuxAbhishek Prakash

2. Copie archivos del contenedor docker al sistema host

El comando docker cp se ejecuta solo en el sistema host. No puede ejecutarlo en el contenedor.

Incluso si desea copiar archivos del contenedor docker al sistema host, debe estar en el sistema host y usar el comando de la siguiente manera:

sudo docker cp ubu_container:/home/dir1/new.txt  /home/abhishek

3. Copie directorios entre el contenedor y el sistema host

Si desea copiar un directorio en Linux usando el comando cp, deberá usar la opción recursiva -r.

Pero en el comando docker cp, no necesita tales opciones. El mismo comando funciona para copiar archivos y carpetas.

docker cp /home/abhishek/my_dir ubu_container:/home
sudo docker cp ubu_container:/home/my_dir  /home/abhishek

4. Copie archivos y directorios con atributos originales

Puede usar el modo de archivo mientras copia con la opción -a. Con esto, puede copiar todos los permisos de archivo, UID y GID del archivo original.

docker cp -a host_source_path container:destination_path
docker cp -a container:source_path host_destination_path

Eso es todo. Verá lo fácil que es copiar archivos entre el host y el contenedor usando el comando docker cp.

Si tiene alguna pregunta o sugerencia, hágamelo saber en el sistema de comentarios.


Docker
  1. Cómo instalar y alojar un servidor OpenVPN con Docker

  2. Cómo instalar Docker e implementar una pila LAMP

  3. Cómo copiar archivos entre pods de Kubernetes y su máquina

  4. Cómo montar un directorio de host en un contenedor Docker

  5. Cómo compartir datos entre contenedores Docker

Cómo usar SSH en un contenedor Docker y ejecutar comandos

Cómo conectarse a Localhost dentro de un contenedor Docker

Cómo usar Docker Cp para copiar archivos entre el host y los contenedores

Cómo implementar y administrar un contenedor Docker MongoDB

Cómo copiar archivos con Docker cp a su Docker Container

Cómo acceder a archivos fuera de un contenedor Docker