i have a running Mongo DB Container called xyz from offical Mongo Image. i created the container with docker run -d -p 21707:21707 mongo
In this container i created 2 collections with sample data.
Now i want to extract this container in a new image on dockerhub.
I used docker commit
and created a new image, pushed it on the docker hub. If i pull the image on a other system and create a new container from this image, there are no data like in my origin container xyz.
After research i found out that the mongo image could used with a volume, but i missed this step in the past... I think the container use /data/db as standard volume(docker inspect
), on commit this volume is not attached to the new image?!
Also i tried docker export/import
with the same problem mentioned above!
Now my Question, how could i reach to migrate this "xyz" running container with my sample data in a new image/container? Thanks a lot!
The mongo docker image writes its data into a volume. As a result, those data won't be saved to a new docker image created with
docker commit
.docker export
won't produce your data for the same reason.What you want is either:
--volumes-from
docker run
-v
optionAlso, this SO question might help you figure out volumes.
I wanted to make an image to test things around authentication and I has the same issue. I solved it this way:
Dockerfile
setup.sh
Bim! When you run this image you have a mongodb with authentication activated and a root user. The key is to workaround the VOLUME in the base Dockerfile by storing the data somewhere else.