Vorrei estrarre un file da un'immagine Docker senza dover eseguire l'immagine.
Il docker save
opzione non è attualmente un'opzione praticabile per me in quanto sta salvando un file troppo grande solo per annullare il tar di un file specifico.
Risposta accettata:
Puoi estrarre file da un'immagine con i seguenti comandi:
docker create $image # returns container ID
docker cp $container_id:$source_path $destination_path
docker rm $container_id
Secondo il docker create
documentazione, questo non esegue il contenitore:
La docker create
comando crea un livello contenitore scrivibile sull'immagine specificata e lo prepara per l'esecuzione del comando specificato. L'ID del contenitore viene quindi stampato su STDOUT
. È simile a docker run -d
tranne che il contenitore non viene mai avviato. È quindi possibile utilizzare il docker start <container_id>
comando per avviare il container in qualsiasi momento.
Per riferimento (la mia risposta precedente), un modo meno efficiente per estrarre un file da un'immagine è il seguente:
docker run some_image cat $file_path > $output_path