Pero suficientes alabanzas sobre Docker. En este artículo, discutiremos cómo copiar archivos hacia y desde un contenedor al sistema de host y viceversa."
Empecemos
Docker CP
Docker CP es una utilidad de línea de comandos que le permite copiar archivos y directorios entre sistemas. El comando adquiere una sintaxis muy simple que permite un flujo de trabajo fácil.
La sintaxis del comando:
Docker CP [Opciones] Contenedor: Src_Path Dest_Path |-La utilidad de CP copiará los archivos especificados desde el src_path a Dest_path. Esto le permite copiar desde el contenedor al sistema host y viceversa.
El contenedor puede ser ejecutado o detenido el estado, y el comando realizará la operación de copia correctamente.
Si se especifica un directorio, el comando copiará los archivos recursivamente en el destino especificado.
Para copiar archivos del sistema de host a un contenedor, puede usar la sintaxis:
$ Docker CP host_path contenedor_id: rutaLa misma sintaxis de comando se aplica cuando desea copiar archivos desde el contenedor al sistema de host:
$ Docker CP Container_ID: SRC_PATH HOST_PATHVeamos cómo podemos lograr esto con ejemplos prácticos.
Obtenga contenedores de ejecución
El primer paso es obtener los nombres e ID de los contenedores en ejecución. Podemos hacer esto con el comando Docker PS.
$ Docker PSUna vez que obtenga el contenedor y el nombre o la identificación, podemos continuar. Puede obtener la identificación en las columnas de ID y nombres de contenedores.
Copiar archivos del sistema host al contenedor
Supongamos que tenemos un archivo llamado copias de seguridad.alquitrán en el escritorio del sistema host y desea copiarlo en el contenedor Debian11.
Podemos ejecutar el comando:
Docker cp ~/escritorio/copias de seguridad.Tar Debian11:/InicioEl comando anterior copiará las copias de seguridad.Archivo TAR en el directorio de inicio del contenedor especificado.
Podemos verificar que el archivo exista ejecutando el comando:
$ Docker Exec -Ti Debian11 /bin /BashEl comando anterior debe permitirle iniciar sesión en el contenedor y generar un caparazón de bash.
Ahora puede enumerar los archivos y directorios en el contenedor como:
root@f657ea827600: /# ls -la /homePodemos ver que el archivo se ha copiado con éxito en el contenedor.
Si desea usar la ID de contenedor, puede ejecutar el comando:
Docker cp ~/escritorio/copias de seguridad.TAR F657EA827600:/InicioNota: Si existe un archivo con un nombre similar como la ruta de destino especificada, el comando lo sobrescribirá sin indicación.
Docker Copiar archivo de contenedor a host
También podemos usar el comando para copiar archivos desde el contenedor en el sistema de host. Por ejemplo, supongamos que queremos copiar los registros del contenedor al directorio de registros en la carpeta de escritorio del host del host.
Podemos ejecutar el comando:
$ sudo Docker CP Debian11:/var/log/~/escritorio/registrosEn el comando anterior, le decimos al comando Docker CP que copie los archivos del directorio /var /log en el directorio de debian11 al directorio de registros en el sistema de host.
Podemos verificar esto ejecutando el comando:
$ ls -ls ~/escritorio/registrosDocker CP Preserve atributos
Notará que una vez que copiemos un archivo hacia y desde el sistema de host, Docker no preserva los atributos como permisos, UID, etc.
Podemos resolver esto agregando el indicador -A en el comando Docker CP.
$ Docker cp -a host_path contenedor: rutaUn ejemplo es como se muestra:
Sudo Docker CP -A Debian11:/var/log/~/escritorio/registrosPodemos ver que los permisos son similares a uno de los archivos copiados en el contenedor.
Conclusión
En este tutorial, aprendió cómo usar el comando Docker CP para copiar archivos hacia y desde un contenedor Docker al sistema de host y viceversa.
Gracias por leer!!