是否可以从Dockerfile安装卷?如果没有,最好的办法是什么?
我知道你可以在命令提示符中使用普通的Docker命令来做到这一点,但有没有更好的方法来完成这项工作?
答案 0 :(得分:1)
不幸的是,在图像构建过程中,不可能会这样做。
我认为原因可能是便携性?我在这里不太确定 - 如果有人能够进一步解释这一点会很好。
但我的猜测是,如果Docker允许用户在构建时安装卷,那么Docker将不得不预测和处理不同类型的文件系统,例如Windows vs Unix。如果在其他主机上不存在它应该用于安装的目录路径呢?
无论如何,我不太确定你的用例是什么,但你应该能够使用ADD
或COPY
命令将文件从主机的文件系统移动到构建期间的图像中将移动的文件用于其他目的,如安装等。
查看:强>
https://docs.docker.com/engine/reference/builder/#/add
问:那么最好的方法是什么?
答:我认为没有标准的方法来安装音量。我通常在docker-compose
文件中定义我的挂载。
查看:强>
https://docs.docker.com/compose/compose-file/#/volumes-volume-driver
答案 1 :(得分:1)
在Dockerfile
的上下文中,您对主机资源的访问权限有限,达到了实际构建容器图像所需的范围。为了说明,您是否能够在当前环境中装载主机卷,启动容器或访问其资源,这可能等同于可以为您构建的映像。
如果您确实需要在构建期间作为卷安装主机资源,则可能需要查看Packr。但是,如果您希望在容器启动时卷可用,那么通常可以以某种方式使用docker run --name=Foo $ARGS
。