Docker:从容器文件夹访问主机文件夹

问题描述 投票:0回答:1

我想从 docker 容器访问主机上保存的一些文件。

编辑-
我的用例:

  1. 我有一个 Spring Boot 应用程序(rest-service),它读取本地(主机)系统上存储的文件。它的 jar 将在 docker 容器中运行。
  2. 我有另一个 docker 容器化应用程序(QE 应用程序),它使用 spring boot 应用程序的 jar。 所以,我有 2 个容器化应用程序 - 1. spring boot 应用程序和 2. QE 应用程序
  3. 我需要享受 QE 提供的休息服务,这是我能够做到的。 但由于服务的 jar(在容器中运行)无法访问主机文件,因此我的服务无法正常工作。 这就是为什么我想从 docker 容器中运行的服务访问主机上保存的文件夹。

我做了什么:

  1. 执行以下命令将主机文件夹的内容复制到容器的文件夹中

    docker run -d --volume C:\host_folder:/conf/container/tmp d9746fe0b603 sleep infinity

  2. 执行以下命令后 -

    docker exec -it cd8ca46e46c6 sh

    我可以检查
    C:\host_folder
    的内容是否已复制到容器中的
    /conf/container/tmp
    文件夹中。附上截图。
    但是当我在容器中运行应用程序时, 收到相同的错误 - 服务找不到存储在主机系统上的文件。

附上几张截图-
我尝试使用 -

docker-compose up --build
重新启动并重建容器,但这不起作用。谁能告诉我出了什么问题以及如何解决这个问题。 TIA

windows docker docker-compose host docker-container
1个回答
0
投票

我在描述中的我所做的事情下讨论的方法存在问题:

  1. 能够成功将文件从host_folder复制到container_folder。
  2. 但是,一旦我再次构建容器 -
    docker-compose up --build
    ,更新就丢失了。 (因为命令是在控制台上运行的,可能是!)

最终适用于所讨论案例的解决方案 -
docker-compose 文件中,图像内的 volumes 标签下提及您要安装的文件夹,如下所示:

application-mage:
  .
  .
  volumes:
    - C:/host_folder/:/conf/container_folder/tmp/
© www.soinside.com 2019 - 2024. All rights reserved.