All Projects → mudler → docker-companion

mudler / docker-companion

Licence: other
squash and unpack Docker images, in Golang

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

docker-companion Build Status

docker-companion is a candy mix of tools for docker written in Golang and directly using Docker API calls. As for now it allows to squash and unpack an image.

Reinventing the wheel?

Problem arises with current tools to squash/unpack images since mostly of them are scripted. I personally needed a static implementation with no-deps hell that i could use in my CI pipeline easily (and also to get the job done).

Download and unpack image

Note: Doesn't require a docker daemon running on the host.

docker-companion download my-awesome-image /unpacked_rootfs

Downloads and reconstruct all the image layers, unpacking the content to the directory given as second argument.

Squash an image

The resulting image will loose metadata, but it is handy to reduce image size:

docker-companion squash my-awesome-image my-awesome-image-squashed

You can also make it pull before squashing it:

docker-companion --pull squash my-awesome-image my-awesome-image-squashed:mytag

Or just squashing an image

docker-companion squash my-awesome-image

to directly remove the intermediary (the source image, which will loose the tag)

docker-companion squash --remove my-awesome-image

Unpack an image

docker-companion unpack my-awesome-image /my/path

The path must be absolute, and you must run it with root permission to keep file permissions.

You can squash the image right before unpacking it too:

docker-companion --pull unpack --squash my-awesome-image /my/path

It can be handy sometimes to squash the image before unpacking it (very few cases where the latter fails)

You can supply also the --fatal global option to treat all warnings as fatal:

docker-companion --fatal --pull unpack --squash my-awesome-image /my/path

Get Latest release from github for amd64

curl -s https://api.github.com/repos/mudler/docker-companion/releases/latest \
| grep "browser_download_url.*amd64" \
| cut -d : -f 2,3 \
| tr -d \" \
| wget -i - -O docker-companion
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].