Copiar un archivo local a un contenedor
En este paso, aprenderás cómo copiar un archivo desde tu sistema de archivos local a un contenedor Docker en ejecución. Esta es una tarea común cuando necesitas agregar archivos de configuración, scripts u otros datos a un contenedor después de que ha sido iniciado.
Primero, creemos un archivo de texto simple en tu máquina local dentro del directorio ~/project
.
echo "This is a test file." > ~/project/test_file.txt
Este comando crea un archivo llamado test_file.txt
en tu directorio ~/project
y escribe el texto "This is a test file." en él.
A continuación, necesitamos un contenedor en ejecución para copiar el archivo. Usaremos una imagen simple de ubuntu
para este propósito. Como la imagen podría no estar presente localmente, primero la descargaremos.
docker pull ubuntu:latest
Este comando descarga la última versión de la imagen ubuntu
desde Docker Hub.
Ahora, ejecutemos un contenedor basado en la imagen ubuntu
. Lo ejecutaremos en modo desatendido (-d
) y le daremos un nombre (my_ubuntu_container
) para facilitar su identificación.
docker run -d --name my_ubuntu_container ubuntu:latest sleep infinity
Este comando inicia un nuevo contenedor llamado my_ubuntu_container
usando la imagen ubuntu:latest
. El comando sleep infinity
mantiene el contenedor en ejecución indefinidamente, lo cual es útil para fines de demostración.
Puedes verificar que el contenedor está en ejecución usando el comando docker ps
.
docker ps
Deberías ver my_ubuntu_container
listado en la salida.
Ahora, podemos copiar el archivo test_file.txt
desde tu máquina local al contenedor en ejecución usando el comando docker cp
. La sintaxis es docker cp <ruta_local> <nombre_contenedor>:<ruta_contenedor>
.
docker cp ~/project/test_file.txt my_ubuntu_container:/tmp/
Este comando copia el archivo ~/project/test_file.txt
al directorio /tmp/
dentro de my_ubuntu_container
.
Para verificar que el archivo se copió correctamente, puedes ejecutar un comando dentro del contenedor usando docker exec
. Usaremos ls
para listar los archivos en el directorio /tmp/
del contenedor.
docker exec my_ubuntu_container ls /tmp/
Deberías ver test_file.txt
listado en la salida, lo que confirma que el archivo se copió correctamente.
Finalmente, limpiemos el contenedor que creamos.
docker stop my_ubuntu_container
docker rm my_ubuntu_container
Estos comandos detienen y eliminan el contenedor, respectivamente.