Me gustaría extraer un archivo de una imagen de Docker sin tener que ejecutar la imagen.
El docker save
Actualmente, la opción no es una opción viable para mí, ya que está guardando un archivo demasiado grande solo para quitar el tar de un archivo específico.
Respuesta aceptada:
Puede extraer archivos de una imagen con los siguientes comandos:
docker create $image # returns container ID
docker cp $container_id:$source_path $destination_path
docker rm $container_id
De acuerdo con docker create
documentación, esto no ejecuta el contenedor:
El docker create
El comando crea una capa de contenedor grabable sobre la imagen especificada y la prepara para ejecutar el comando especificado. El ID del contenedor luego se imprime en STDOUT
. Esto es similar a docker run -d
excepto que el contenedor nunca se inicia. A continuación, puede utilizar la ventana acoplable docker start <container_id>
comando para iniciar el contenedor en cualquier punto.
Como referencia (mi respuesta anterior), una forma menos eficiente de extraer un archivo de una imagen es la siguiente:
docker run some_image cat $file_path > $output_path