Data Volume
docker提供了两种类型的volume:bind mount和docker managed volume
bind mount
bind mount是将host上已经存在的目录或者文件mount到容器
通过-t将主机上的文件mount到容器中:
docker run -d -p 8080:80 -v ~/htdocs:/usr/local/apache2/htdocs httpd(容器名)
即便是容器删除了,数据还在,因为数据在host主机上,与容器无关。

可以指定数据的读写权限,默认是可读可写,可指定为只读。

ro:只读模式。在容器中无法对mount的数据进行修改,只有host主机有这个权限,提高了安全性。
除了mount目录,还可以单独指定一个文件:
使用bind mount单个文件的场景是:只需要向容器中添加文件,不希望覆盖整个目录。
使用场景:将源代码目录mount到容器中,在主机host下改代码就可以看到应用的实时效果。将mysql容器的数据放在mount中,这样host主机可以很方便的备份和迁移数据。
缺点是可移植性差。可以使用docker managed volume 改进。
本文深入解析Docker中两种volume类型:bindmount和dockermanagedvolume。bindmount将主机目录或文件挂载到容器,实现数据持久化和实时更新,适用于代码开发和数据库备份。但存在可移植性限制。
613

被折叠的 条评论
为什么被折叠?



