Docker Volume(数据持久化)

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 = 宿主机目录映射到容器