我可以从Dockerfile挂载一个卷吗?
是否有可能从一个Dockerfile挂载一个卷? 如果不是最好的办法做到这一点?
我知道你可以在命令提示符下使用正常的Docker命令来做到这一点,但有没有更好的方法来完成这个工作?
不幸的是,在图像构build过程中不可能这样做。
我想可能是便携的原因? 我不太确定 – 如果有人可以进一步解释这个问题,那将会很好。
但我的猜测是,如果Docker允许用户在构build上挂载卷,那么Docker将不得不预测和处理不同types的文件系统,例如Windows和Unix。 另外如果它应该被用于安装的目录path不存在于另一个主机上?
无论如何,我不太清楚你的用例是什么,但是你应该能够使用ADD
或者COPY
命令将文件从主机的文件系统迁移到映像中,并将其移动文件用于安装等其他目的。
看到:
https://docs.docker.com/engine/reference/builder/#/add
问:那么最好的方法是什么?
答:我认为没有安装音量的标准方法。 我通常在docker-compose
文件中定义我的挂载。
看到:
https://docs.docker.com/compose/compose-file/#/volumes-volume-driver
在Dockerfile
的上下文中,您对主机资源的访问权限有限,实际上需要构build容器的映像。 为了说明,您应该能够安装主机卷,启动容器或访问其资源,这可能等同于可以在当前环境中为您构build的映像。
如果您确实需要在构build期间将主机资源挂载为卷,则可能需要查看Packr 。 但是,如果你想容器在容器启动时可用,那么通常使用docker run --name=Foo $ARGS
。
- 在rails docker容器中找不到rake-11.1.2
- 如何从docker反向代理失败中恢复
- Fedora Image上的Thttpd Instalation
- Docker-> Maven-> Failsafe-> Surefire启动fork失败,“分叉虚拟机终止,没有正确说再见。 虚拟机崩溃或System.exit调用?
- 无法将图像推送到Openshift(未经授权:需要validation)
- 更新Docker容器内的wordpress插件
- 错误无法访问选定的应用程序,未parsing的应用程序库引用
- Spring引导应用程序不适用于AWS
- 从ECR托pipe的Docker镜像创buildEC2最简单的方法是什么?