Reputation: 2806
I'm running the official solr 6.6 container used in a docker-compose environment without any relevant volumes. If i modify a running solr container the data survives a restart. I dont see any volumes mounted and it works for a plain solr container:
docker run --name solr_test -d -p 8983:8983 -t library/solr:6.6
docker exec -it solr_test /bin/bash -c 'echo woot > /opt/solr/server/solr/testfile'
docker stop solr_test
docker start solr_test
docker exec -it solr_test cat /opt/solr/server/solr/testfile
Above example prints 'woot'. I thought that a container doesnt persist any data? Also the documentation mentions that the solr cores are persisted in the container. All i found, regarding container persistence is that i need to add volumes on my own like mentioned here. So i'm confused: do containers store the data changed within the container or not? And how does the solr container achive this behaviour? The only option i see is that i misunderstood peristence in case of docker or the build of the container can set some kind of option to achieve this which i dont know about and didnt see in the solr Dockerfile.
Upvotes: 2
Views: 4155
Reputation: 5205
This is expected behaviour. The data you create inside a container persist as long as you don't delete the container.
But think containers in some way of throw away mentality. Normally you would want to be able to remove the container with docker rm
and spawn a new instance including your modified config files. That's why you would need an e.g. named volume here, which survives a container life cycle on your host.
The Dockerfile
, because you mention it in your question, actually only defines the image. When you call docker run
you create a container from it. Exactly as defined in the image. A fresh instance without any modifications.
When you call docker commit
on your container you snapshot it (including the changes you made to the files) and create a new image out of it. They achieve the data persistence this way.
The documentation you referring to explains this in detail.
Upvotes: 5