Docker挂载到文件夹覆盖内容
我有一个.net Core web Api,在名为Config的文件夹下有配置文件. 我的问题是,到目前为止,我无法找到一种方法来创建相同的容器装载/绑定Config文件夹到物理路径,遵循以下要求: 1)将Config文件夹挂载到特定主机位置 2)在容器创建时,Config文件夹应填充图像中的文件 3)在容器创建时,覆盖文件夹中已存在的任何现有文件与图像中的文件 4)能够从主机自定义文件夹中的配置文件 我的创建命令:
如文档中所指定的那样,使用带有类型bind的–mount,如果文件夹中有任何文件,则从容器中隐藏这些文件,应用程序将看到已部署的文件. 现在,删除type = bind我得到相同的结果,这是令人困惑的. 我尝试使用volume –volume $configVolumePath“:/ app / Config:rw”,但这样做不会覆盖主机目录中的预先存在的文件,并且这些文件将在容器中使用. 附加说明,我没有在Dockerfile中指定任何内容或与卷安装相关的组合,我没有尝试创建一个卷然后将其用作源,但我不认为这会有所作为. 容器服务器在NAS上运行,这是版本:
很明显我错过了一些东西,我必须了解更多关于码头工具的信息,有人可以帮忙吗? 我的推荐: 1)https://docs.docker.com/engine/admin/volumes/bind-mounts/ 2)https://docs.docker.com/engine/admin/volumes/volumes/ 最佳答案
首先,docker卷或绑定挂载的行为类似于linux挂载.
如果主机卷/挂载存在并包含文件,它将“覆盖”容器中的任何内容.如果不是,容器文件将镜像到主机卷/装载,容器文件夹和主机将同步. 在您的情况下,您可以执行以下操作:
这将创建一个将在主机上的$configVolumePath中保留的卷. 创建容器时使用该卷:
你将得到的是启动时,主机文件夹将为空,图像中的文件将被“复制”到主机文件夹中.在$configVolumePath中编辑文件将在容器内部进行重新选择 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |