You can flatten an image with docker export and then docker import. That will take all the existing layers and export them as a single file system image, in a tarball. Then import will bring it back in again as an image.
Steps:
-
docker run --name mycontainerthe image to create a container (the container name mycontainer is just an example) -
docker export --output=mycontainer.tar mycontainerthe container to a tarball (mycontainer.tar is just an example) -
cat mycontainer.tar | docker import - mynewimage:importedthe tarball (the image name mynewimage:imported is just an example)
Docs: