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/data
与 docker 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
中。
上一篇: 每个项目最重要的十件事
下一篇: C语言操作符总结