在Dockerfile中将本地目录挂载为容器卷

5

我知道如何使用 -v 选项在 docker run 中将本地目录挂载为卷,即:

docker run -v /local/some_folder:/container/some_folder image_name

然而,我希望能够在Dockerfile中指定上述指令(将本地的/local/some_folder挂载为容器中的/container/some_folder)。
我尝试在Dockerfile中使用VOLUME /local/some_folder /container/some_folder,但似乎并没有起作用:通过docker exec -t container sh可以访问/container/some_folder,但是容器对/container/some_folder的写操作在容器运行时以及docker stop container后都不会反映在/local/some_folder中。

你可以使用docker-composer命令来实现。但是,指令应该放在docker-compose.yml文件中。 - chrisandrew.cl
1个回答

5
您不能在Dockerfile或镜像构建过程中控制主机卷挂载等事项。这样做会允许恶意的镜像创建者创建一个镜像,该镜像可以在未经主机管理员允许的情况下在主机上挂载目录。如果安全漏洞允许流行的基础镜像挂载文件系统,则可以将私有数据发送到外部,并在无数台计算机上注入登录凭据。唯一的挂载卷的方法是在容器运行时由管理员显式请求,并提供他们选择的目录。请注意,不要改变原始html标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接