Hello,
I am following the book “Mastering Docker” and have a confusion about docker volume. Please help me understand clearly.
Here is my case.
Create a container redis
root@docker:~# docker container run -d --name redis --network moby-counter redis:alpine
e01a3ccf79204ed882699a62543a39a697dccc0d9d960fe2ec46f31f6b6256cd
and moby-counter
root@docker:~# docker container run -d --name moby-counter --network moby-counter russmckendrick/moby-counter
Two containers are running
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83a924d3cd45 redis:alpine “docker-entrypoint.s…” 22 minutes ago Up 22 minutes 6379/tcp redis
cd5d91dd8c42 russmckendrick/moby-counter “node index.js” 5 hours ago Up 5 hours 0.0.0.0:800->80/tcp moby-counter
After that, I access the http://127.0.0.1:800, and the data appears well.
Then I stop and remove redis container. The page application moby-counter is trying to connect redis in page 127.0.0.1:800.
Next, I create a new redis with the same command
root@docker:~# docker container run -d --name redis --network moby-counter redis:alpine
dsddfdsfsdfccf79204ed882699a62543a39a697dccc0d9d960fe2ec46f31f6b6256cd
The page appears well again. But, all of data what I put on this site was lost. It makes sense, because I don’t mount it to storage on Docker host.
So next, I stop redis container and create a mount volume as following
root@docker:~# docker volume ls
DRIVER VOLUME NAME
local 0e2881b08ee14e3da69633014c19eceb19b360909705b5f572ed666332c732f8
root@docker:~# docker container run -d --name redis -v 0e2881b08ee14e3da69633014c19eceb19b360909705b5f572ed666332c732f8:/data --network moby-counter redis:alpine
83a924d3cd45e55a05866336a944f5fff463975b49435b15b59a5474ea8d7528
Nice! but, what happened? the data what I put to the page is still here. I am confusing.
Because I already removed the container before starting a new redis container with a volume. I still don’t know why. Could you please help me about that?
Maybe the data stored at front-end (127.0.0.1:800)?
Thank you so much