当前位置: 首页 > 知识库问答 >
问题:

我可以指定要从 Dockerfile 装载的主机目录吗?

秦才
2023-03-14

Docker运行命令具有将主机目录装入容器的选项

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro]. 
       If "host-dir" is missing, then docker creates a new volume.

Dockerfile有指令

VOLUME ["/data"] - The VOLUME instruction will add one or more new volumes 
                   to any container created from the image.

在我看来,在使用Dockerfile时,无法指定<code>主机目录

除了想要与其他容器共享卷之外,DOCKER 文件中的 VOLUME 还有其他用法吗?

共有1个答案

林华皓
2023-03-14

Dockerfiles旨在可移植和共享。主机目录卷是100%依赖于主机的,并且会在任何其他机器上中断,这有点偏离Docker的想法。

因此,只能在Dockerfile中使用可移植指令。如果您需要host-dir卷,则需要在运行时指定它。

Dockerfile中的卷的一个常见用法是存储配置或网站源,以便稍后由另一个容器更新。

 类似资料:
  • 挂载主机目录 挂载一个主机目录作为数据卷 使用 --mount 标记可以指定挂载一个本地主机的目录到容器中去。 $ docker run -d -P \ --name web \ # -v /src/webapp:/opt/webapp \ --mount type=bind,source=/src/webapp,target=/opt/webapp \ training/

  • 我想建立一个Docker图像,包括我的自定义Powershell模块。因此,我使用Microsofts图像,我想从这里创建我自己的图像,其中包括我的psm1文件。 我想把C:\temp\someDirectory中包含的文件复制到docker linux容器中。在构建映像时,我得到以下错误: C:\temp\docker_posh>docker build--rm-f dockerfile-t d

  • 我想确保我的Postgres数据(使用基于Linux图像)保持,即使在我的Windows主机重启后。 我尝试按照以下步骤操作如何使用卷将数据持久化到dockerize postgres数据库中 然而,我发现了一个错误 然后,我试着跟着插手https://forums.docker.com/t/trying-to-get-postgres-to-work-on-persistent-windows-

  • 问题内容: 我已经编写了一个简单的httprequest / response代码,但出现以下错误。我在类路径中引用了httpclient,httpcore,common-codecs和common- logging。我对Java非常陌生,不知道这里发生了什么。请帮我。 码: 错误: 问题答案: 该错误消息有点误导。您提供的值不代表完整的URI 它缺少协议。 只需提供完整的URI

  • 我正在寻找一种方法,当组位于单独的目录中时,可以在Ansible playbook中将多个组指定为主机(这与此问题类似,但不同,因为该问题假设只有一个目录)。 假设我有一个名为的剧本。有时我想在、有时、有时等方面进行更改: 。 假设有单独的库存,大致如下所示: 当未显式指定时,上面的剧本无法运行。 null 我正在寻找一种方法来维护单独的主机清单,但创建剧本的方式,他们可以执行对主机组的多个组合。