如何解决dockerfiles中的docker卷
我想在docker容器中运行我的云,并将数据存储在容器外部的卷中。这样,当我的容器被破坏或删除时,数据仍然是持久的。
在docker container run -v /path/to/src:/path/to/target imageName:tag
处传递volume参数时,它运行正常,没有任何问题。
如何将src
和target
目标传递到dockerfile中?
VOLUME /path/to/target
将创建一个卷,该源的源在var/lib/docker
中某个我不希望的位置。
解决方法
简短的回答:您不能。
长答案:您在这里要做的本质上是反对图像的可移植性。 Docker文档专门指出这是不可能的,如此处所示:https://docs.docker.com/engine/reference/builder/
“主机目录是在容器运行时声明的:主机目录(挂载点)本质上是依赖于主机的。这是为了保留映像的可移植性,因为不能保证给定的主机目录可以在所有主机上都可用。因此,您不能从Dockerfile内安装主机目录。VOLUME指令不支持指定host-dir参数。创建或运行容器时必须指定安装点。”
,听起来好像您想要容器中的默认文件,您可以使用COPY
指令将默认文件放入容器中,以将文件从本地计算机复制到容器映像中。然后,可以在启动/运行容器时使用-v
参数覆盖放置文件的目录,以使用本地主机替换目录安装:
例如
COPY ./files/source/swagger.json /application/resources/destination/swagger.json
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。