Si le stockage de la sortie complète de docker save
n'est pas une option, vous pouvez utiliser des pipelines pour en extraire uniquement le fichier nécessaire.
Malheureusement, comme la sortie est un "goudron de goudron", il peut s'agir d'un processus légèrement itératif.
Ce que j'ai fait lorsque j'ai eu besoin d'extraire un fichier tout à l'heure était:
1) Déterminez quelle version de l'image le fichier qui vous intéresse a changé le plus récemment (la façon dont vous procédez dépend probablement de votre image) et la date de sa création / sauvegarde
2) Obtenez la table des matières complète de la sortie de la docker save
commande avec:
docker save IMAGE_NAME | tar -tvf -
3) Affinez le layer.tar
(s) fichier (s) dans la sortie de cette commande qui correspondent à la date de l'image que vous avez déterminée à l'étape 1. (vous pouvez ajouter | grep layer.tar
pour simplement afficher ces fichiers)
4) Extrayez ce layer.tar
fichier en sortie standard et récupérez la table des matières:
docker save IMAGE_NAME | tar -xf - -O CHECKSUM_FROM_LIST/layer.tar | tar -tvf -
5) Vérifiez que le fichier souhaité est répertorié et extrayez-le une fois que vous avez trouvé le nom:
docker save IMAGE_NAME | tar -xf - -O CHECKSUM_FROM_LIST/layer.tar | tar -xf - PATH/TO/YOUR/FILE
Si plusieurs layer.tar
fichiers correspondent à la date recherchée à l'étape 2/3, vous devrez peut-être répéter l'étape 4 pour chacun d'eux jusqu'à ce que vous trouviez le bon.
Remplacez le texte en majuscules dans les commandes ci-dessus par les noms d'image, les sommes de contrôle et les noms de fichiers corrects pour votre cas.