2014-06-23 22 views
22

Sono appena agli inizi con Docker e sarebbe molto utile poter vedere i file Docker utilizzati per creare immagini di finestre mobili esistenti.È possibile estrarre il Dockerfile da un contenitore di finestra mobile

Anche se l'immagine è stata creata eseguendo i comandi manualmente e quindi impegnandosi in un tag, sarebbe bello poter vedere come è stata realizzata l'immagine, sia per scopi di apprendimento che per sicurezza.

Esiste un modo per estrarre un Dockerfile o un elenco di comandi utilizzati per creare un'immagine di finestra mobile specifica?

risposta

29

Hai docker history <image> che è molto utile. Può anche essere usato per generare un file di dati docker se nessuno dei passi ha coinvolto lo stdin.

Se un passo come stdin, l'unico modo per sapere cosa sarebbe successo è fare docker logs <container id parent>, ma se non si dispone del contenitore, non è possibile.

12

C'è disarmante disponibile ora. Possiamo installarlo usando il comando pip.

pip install git+https://github.com/larsks/undocker/ 

e utilizzare

docker save IMAGE_NAME | undocker -i -o IMAGE_NAME 

per estrarre i file dalla finestra mobile.

https://github.com/larsks/undocker/

3

C'è un progetto dockerfile-from-image, che potrebbe aiutare a farlo direttamente.

Si richiede un unico comando CLI per ripristinare il Dockerfile:

docker run -v /var/run/docker.sock:/var/run/docker.sock centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID>

Bisogna avere Docker già installato.

+1

non funziona per me: /usr/lib/ruby/gems/2.2.0/gems/docker-api-1.24.1/lib/docker/connection.rb:42:in 'rescue in request ': 400 Richiesta non valida: intestazione host malformata (Docker :: Error :: ClientError) – Julianesten

Problemi correlati