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

Dockerfile与docker组成VOLUME

阎建华
2023-03-14

本实验尝试使用此Docker文件构建容器:

FROM lambdalinux/baseimage-amzn:2016.09-000
COPY ./bundle /opt/bundle/
VOLUME /bundle

然后在容器内部,创建一个< code >/opt/bundle/file . txt 并在其中放置一些文本。但是,在阅读了“我应该使用复制/添加还是卷包含我的代码”后,该文件并没有像我预期的那样出现在主机上的捆绑目录中。最后一段:

在某些情况下,您可能希望两者都使用。您可以使用COPY让图像包含代码,并在开发过程中使用组合文件中的卷来包含来自主机的代码。该卷覆盖图像的目录内容。

Dockerfile VOLUME 不是和 docker-compose.yml VOLUME 一样吗?如果是这样,如何执行此操作,以便在这种情况下将主机目录中的更改反映在容器目录中?

我还在主机< code>bundle/play.txt上创建了一个文件,但是它没有出现在容器< code>/opt/bundle/中...

共有1个答案

司徒池暝
2023-03-14

Docker文件中的< code>VOLUME指令创建了一个挂载点,但最初只将其映射到Docker的内部数据目录。

为了将卷映射到主机文件系统,需要指定应将主机上的哪个路径映射到卷。您可以使用volumes参数在docker compose文件中执行此操作。(注意:您可以使用docker compose创建卷,而无需在Dockerfile中声明它们。)

请注意,当将目录从主机映射到容器时,主机上的目录内容将替换容器中的内容,反之亦然。

 类似资料:
  • 与手动使用Docker run相比,使用Dockerfile在Docker中发布的端口有问题。使用以下命令,Docker容器成功启动,当我使用http://192.168.99.100:8080- 访问浏览器中的主机IP地址(192.168.99.100)时,RabbitMQ Web管理仪表板加载。 此时,我运行以下操作以从DockerFile中释放我要使用的端口: 当我运行下面的docker-c

  • 问题内容: 我写了一个使用两个参数的: 我写了一个for build: 我不想直接在compose文件中定义这些参数,因此我尝试在docker compose构建期间发送它们: 哪个没有用。我更改为将这些参数用作环境变量。所以我删除了几行: 和: 跑了; 仍然没有结果。 我还尝试将这些信息保存到文件中: 但是,似乎文件在构建时不会受到影响。他们只是参与运行时间。 编辑1: Docker版本不支持使

  • 主要内容:指令详解什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 使用 Dockerfile 定制镜像 这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。 1、下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/s

  • 问题内容: 我一直在阅读和学习有关Docker的知识,并试图正确选择要使用的Django设置。到目前为止,有: Docker Compose 或Dockerfile 我了解在中使用了,但是我不确定是否将所有内容放入一个大的Dockerfile中并用多个命令处理不同的映像是否是一个好习惯? 我想使用几个不同的图像,包括: 请提供关于使用 Docker 设置此类环境的最佳实践的建议。 如果有帮助,我在

  • 我有一个用Django编写的应用程序,我正在尝试在Digital Ocean droplet上的docker中运行它。目前我有两个文件。 有人能建议如何摆脱docker compose吗。yml文件并集成Dockerfile中的所有命令??? 文档文件 docker编写。yml公司 我运行我的应用程序和docker映像,如下所示: docker compose运行web python jk/man

  • 我一直在阅读和学习Docker,并试图正确选择要使用的Django设置。到目前为止,存在以下两种情况之一: Docker撰写或Dockerfile 我知道Docker Compose中使用Dockerfiles,但我不确定将所有内容放在一个大Dockerfiles中,并使用多个来自不同图像的命令是否是一种好的做法? 我想使用几个不同的图像,包括: 请就使用Docker设置此类环境的最佳实践提供建议