Docker Bind Mount 与 Volume

杨友山 2019-12-25

了防止docker里序列化数据的丢失,docker采用了挂载的方式 volume

docker -v volumeName:containerPath 
或者
docker -v containerPath

这种方式,linux中,docker会在/var/lib/docker/volumes下生成volumeName目录,将containerPath的目录挂载在/var/lib/docker/volumes/$volumeName/_data里

如果不指定volumeName,将随机生成一个文件

这种方式便是 volume

同时,为了能够自定义文件存在位置,还可以通过 docker -v 绝对路径 或者 ~/path:containerPath的方式,指定位置

这种方式,被称为 bind mount

通过docker volume inspect volumeName 查看volume的模式的挂载信息

也可以通过  docker inspect  $name| grep Mounts -A 10 查看信息,俩种方式都支持

还有需要注意的是:

bind mount

  容器以宿主机文件夹为准

volume

  宿主有数据时,以宿主机为准

  宿主无数据,从容器复制过来,再以宿主机为准

相关推荐