Created
July 8, 2016 17:23
-
-
Save jcataluna/1dc2f31694a1c301ab34dac9ccb385ea to your computer and use it in GitHub Desktop.
Script to save all images from a docker-compose.yml file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
mkdir -p out | |
for img in `grep image $1| sed -e 's/^.*image\: //g'`; | |
do | |
cleanname=${img/\//-} | |
tag=`docker images | grep $img | awk '{print $2}'` | |
echo "Exporting image: $img, tag:$tag ($cleanname)..." | |
docker save $img -o out/$cleanname.tar | |
ls -lah out/$cleanname.tar | |
tar -czvf out/$cleanname.tgz out/$cleanname.tar | |
rm -rf out/$cleanname.tar | |
done |
hlavki
commented
Oct 6, 2017
powershell
$images = @(); docker-compose config | ?{$_ -match "image:.*$"} | %{$images += ($_ -replace "image: ", "").Trim()}; docker save -o services.img $images
docker save -o services.img $images
Excellent
You saved my time
@hlavki solution as a one liner
docker save -o docker-images.tar $(docker-compose config | awk '{if ($1 == "image:") print $2;}' ORS=" ")
for img in $(docker-compose config | awk '{if ($1 == "image:") print $2;}'); do images="$images $img" done docker save -o services.img $images
And then, how can I use the file services.img?
I want to use 'docker load ' to load these images.
The first step is to unzip service.img?
@McPo ORS=" " can be dropped here.
docker save -o docker-images.tar $(docker-compose config | awk '{if ($1 == "image:") print $2;}')
for img in $(docker-compose config | awk '{if ($1 == "image:") print $2;}'); do images="$images $img" done docker save -o services.img $imagesAnd then, how can I use the file services.img?
I want to use 'docker load ' to load these images.
The first step is to unzip service.img?
docker load < services.img
🙂
Compose V2 offers --images
to list all images (even the ones build by the compose file).
#!/bin/bash
for img in $(docker compose config --images); do
images="$images $img"
done
docker save -o services.img $images
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment