Volume = 容器和宿主机之间的"数据共享/持久化机制"
镜像(image)运行为对应的docker容器(container),类似于类和对象的关系。
但是当docker容器删除后,如不加处理,数据就会丢失(docker stop不会导致数据丢失),因为容器只是临时的,其中的文件也就同样是临时的,所以我们需要对容器中的数据进行持久化。
这时就可以通过Volume来把宿主机目录挂载到容器内部
例:
创建主机目录:
bash
mkdir -p ~/nginx-html
写网页:
bash
echo "Hello Volume - from host" > ~/nginx-html/index.html
启动容器:
bash
docker run -d
--name nginx-v
-p 8080:80
-v ~/nginx-html:/usr/share/nginx/html
nginx
-v代表:
-v 宿主机目录:容器目录
结论:这时我们容器中的目录其实指向的是宿主机的目录,可以理解为容器只是帮我们处理数据的一个过程,最终数据是落到我们宿主机上的。
实验:
修改宿主机上文件的内容:
bash
echo "UPDATED FROM HOST" > ~/nginx-html/index.html
访问http://虚拟机IP:8080 , 会发现内容发生变化,再次证明我们上述的结论。
总结:
Volume = 宿主机目录映射到容器