[Docker] Create Docker Volumes for Persistent Storage
Docker containers are stateless by default. In order to persist filesystem changes, you must use docker volumes. In this lesson, we will go over how to copy files over to Docker containers, how to create volumes and copy data to them, and also how to mount remote folders for persisting updates.
First start nginx:
docker run -p 8080:80 --name web --rm nginx
Create a index.html with content just 'foo'
foo
Copy the index.html to nginx default html folder:
docker cp index.html web:/usr/share/nginx/html
Visit the website: localhost:8080, we should be able to see the 'foo'.
Now if we stop the container, and restart it:
docker run -p 8080:80 --name web --rm nginx
We can see the container is statless and we cannot see the word 'foo'.
To persistent the data, we need to add volume:
docker cp index.html web:/usr/share/nginx/html ## copy the index.html docker run -p 8080:80 --name web --rm -v web:/usr/share/nginx/html nginx ## add volume with -v
Now the data is saved and restart the container will still see the data.