欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Dockerfile 之 VOLUME

程序员文章站 2022-05-11 12:45:30
...

FROM 基础镜像
VOLUME /apps/data

上面这段 Dockerfile 表示,在docker运行时,docker会在宿主机的 /var/lib/docker/volumes 创建一个匿名的 volume,所谓匿名,其实就是以一长串数字作为 volume 的名字,例如:2cde1b97f23d52af8c60e958c50b9b4a59c1007df7b34074030d5caeb51c2e72,并将此 volume 绑定到容器的 /apps/data 目录,如果容器的 /apps/data 目录下已经有内容,则会将内容拷贝到匿名 volume 中。也即,Dockerfile中的 VOLUME /apps/datadocker run -v /apps/data 镜像名 的效果一样。

通过上面 Dockerfile 创建的镜像,每次运行得到一个新的容器时,都会为其在 /var/lib/docker/volumes 自动创建一个匿名的 volume,如果需要在不同 container 之间共享数据,那么我们依然需要通过 docker run -it -v volume_name:/apps/data 的方式将 /apps/data 中数据存放于指定的 volume_name 中,volume_name/var/lib/docker/volumes 中。