Docker-compose卷集主机路径

时间:2020-02-18 09:47:17

标签: linux docker docker-compose

我创建了一个简单的示例,试图实现一个简单的任务。我需要将容器内的特定文件夹安装到主机上的特定文件夹。

用于创建我在docker-compose中使用的映像的dockerfile如下:

FROM ubuntu:bionic
COPY ./file.txt /vol/file.txt

在此文件夹中,在容器端,我复制了一个名为file.txt的文件,并且在主机上需要这种行为:

  • 如果主机文件夹为空或不存在或文件丢失,我需要在其中复制file.txt文件。
  • 如果“主机”文件夹中已经有一个具有该名称的文件,则该文件将被保留并且不会被覆盖。

这就是在docker-compose中使用volume时发生的情况。这样做的问题是,您无法在主机上选择文件夹,但是您可以简单地为卷分配一个名称,而Docker将在其文件夹中创建一个名称。

代替使用mount point,您可以选择主机上的文件夹,但是这里的行为有所不同:即使主机上的文件夹为空或不存在,文件file.txt也会被删除在容器上。

一个实用的示例是与Docker一起分发的常见应用程序。我从dotnet映像开始,然后在其中复制我的应用程序,该应用程序将在容器加载时启动。在此应用程序内部,我有一个需要在映像更新中保留的配置文件,因此我需要将其复制到主机上,并且该文件必须由使用主机的用户编辑,因此不能打开具有随机名称的Docker安装的子文件夹。

有办法实现吗?

0 个答案:

没有答案