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.