Pruebas de software | Explicación detallada del comando Docker cp: copiar archivos/carpetas entre contenedores Docker y hosts

Insertar descripción de la imagen aquí

Introducción

Docker es una popular plataforma de contenedores que permite a los desarrolladores crear, empaquetar e implementar aplicaciones en un entorno portátil e independiente. Cuando se utiliza Docker, a menudo es necesario copiar y compartir archivos entre el contenedor Docker y el host. Docker proporciona un docker cpcomando llamado para copiar fácilmente archivos y directorios entre el contenedor y el host. Este artículo presentará docker cpen detalle el uso de comandos y ejemplos comunes.

comando docker cp

docker cpEl comando es un comando proporcionado por Docker para copiar archivos y directorios entre el host y el contenedor. Su sintaxis es la siguiente:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  • CONTAINER, puede ser un contenedor en ejecución o detenido, ya sea nombre o ID
  • SRC_PATH, la ruta del archivo o directorio fuente dentro del contenedor
  • DEST_PATH, la ubicación de la ruta de destino en el host

Nota: docker cpEl comando supone que la ruta del contenedor es relativa al directorio / (raíz) del contenedor y que la ruta del host es relativa al directorio actual donde se ejecuta el comando docker cp.

opcionesParámetros disponibles

  • -a: Conserva los archivos o directorios copiados con sus atributos originales, incluido propietario, permisos, etc.
  • -L: Si SRC_PATH es un enlace simbólico, copia el archivo o directorio al que apunta el enlace.
  • -p: Conserva la marca de tiempo del archivo o directorio fuente.
  • -RO bien -r: copie todo el directorio de forma recursiva.

SRC_PATH y DEST_PATH

SRC_PATHy DEST_PATHson docker cplas partes clave del comando. Si la ruta es correcta está relacionada con si el comando se puede ejecutar con éxito. Analicemos las diversas situaciones de estas dos rutas y expliquemos si se pueden copiar con éxito en diversas circunstancias.

SRC_PATH al especificar un archivo
  1. cuando DEST_PATHno existe

Cree DEST_PATHla carpeta requerida y guarde el archivo en ella DEST_PATH normalmente

  1. Cuando DEST_PATH no está presente y termina con /

El comando informará un error, el directorio de destino debe existir

  1. cuando DEST_PATHexiste y es un archivo

El destino se sobrescribe con el contenido del archivo fuente.

  1. Cuando DEST_PATH existe y es un directorio

SRC_PATHCopie archivos en este directorio usando el nombre base en

SRC_PATH especifica el directorio
  1. Cuando esté DEST_PATHpresente y sea un directorio, la replicación se copiará normalmente
  • SRC_PATH no termina en /., el directorio fuente se copia a este directorio
  • SRC_PATH termina con /. en el que se copia el contenido del directorio fuente
  1. Cuando DEST_PATHexiste y es un archivo, la copia informará un error porque el directorio no se puede copiar en un archivo.

  2. Cuando DEST_PATH no existe, se crea un nuevo directorio DEST_PATH como ruta y el contenido del directorio de origen se copia en él.

Ejemplo de uso

Copie archivos del contenedor al host
  1. El directorio de host ya existe

tomcat_mullerLos archivos que queremos usr/local/tomcat/README.mdcopiar al studydirectorio del host, el comando es el siguiente:

docker cp tomcat_muller:usr/local/tomcat/README.md ./

Ejecute el comando, el resultado se muestra a continuación, copiado correctamente en el directorio especificado:

Insertar descripción de la imagen aquí

  1. El directorio de host no existe y no /termina en

tomcat_mullerLos archivos que queremos usr/local/tomcat/README.mdcopiar al study/testdirectorio del host, el comando es el siguiente:

docker cp tomcat_muller:usr/local/tomcat/README.md ./test

studyEjecute el comando. El resultado es el que se muestra a continuación. Creamos exitosamente testel directorio en el directorio y los archivos se copiaron exitosamente al directorio especificado.

Insertar descripción de la imagen aquí

  1. El directorio de hosts no existe y /termina en

Queremos copiar el archivo a la ruta del host tomcat_muller, el comando es el siguiente:usr/local/tomcat/README.mdstudy/test/

docker cp tomcat_muller:usr/local/tomcat/README.md ./test/

Ejecute el comando y el resultado es el que se muestra a continuación. Debido a que la ruta no existe, se informará un error. No existe dicho directorio.

Insertar descripción de la imagen aquí

  1. Copiar a archivo existente
docker cp tomcat_muller:usr/local/tomcat/README.md test.txt

Ejecute el comando y los resultados son los siguientes:

Insertar descripción de la imagen aquí

La operación de copiar directorios es similar a la de copiar archivos, por lo que no entraremos en detalles aquí.

Copie archivos del host al contenedor

Queremos copiar los archivos studydel host test.txtal contenedor, el comando es el siguiente:

docker cp test.txt tomcat_muller:/

Ejecute el comando, el resultado es el siguiente:
Insertar descripción de la imagen aquí

Copiar directorio del host al contenedor
  1. El directorio de destino no existe

Queremos study/hogwartscopiar el directorio del host al testdirectorio del contenedor, el comando es el siguiente:

docker cp hogwarts tomcat_muller:test/

Ejecute el comando, el resultado es el siguiente:

Insertar descripción de la imagen aquí

  1. El directorio de destino es un archivo.

Queremos copiar el study/hogwartsdirectorio del host al contenedor muller, el comando es el siguiente:

docker cp hogwarts tomcat_muller:muller/
  1. El directorio ya existe

Queremos copiar el study/hogwartsdirectorio del host al contenedor /hogwarts, el comando es el siguiente:

docker cp hogwarts tomcat_muller:/hogwarts/

Los resultados de ejecutar el comando son los siguientes:

Insertar descripción de la imagen aquí

Copiar directorio del contenedor al host

Copiamos el directorio tomcat_mulleren el contenedor webapps.distal host usr/local/study, el comando es el siguiente:

docker cp tomcat_muller:/usr/local/tomcat/webapps.dist /home/muller/study

Ejecute el comando, el resultado es el siguiente:

Insertar descripción de la imagen aquí

Resumir

docker cpEl comando es una herramienta conveniente para copiar archivos y directorios entre contenedores Docker y la máquina host. Con comandos y parámetros simples, podemos transferir archivos fácilmente entre contenedores y hosts. Este artículo describe docker cpla sintaxis del comando y las opciones comunes, y proporciona varios ejemplos para ayudarle a comprender mejor su uso. Mediante el uso flexible docker cpde comandos, podemos realizar fácilmente operaciones y compartir archivos en el entorno Docker.

Para obtener más información técnica, haga clic.

Supongo que te gusta

Origin blog.csdn.net/Tester_muller/article/details/131678630
Recomendado
Clasificación