gpt4 book ai didi

image - 挂载 docker 主机卷但用容器的内容覆盖

转载 作者:IT老高 更新时间:2023-10-28 12:43:18 30 4
gpt4 key购买 nike

有几篇文章对理解 Docker 的卷和数据管理非常有帮助。这两个尤其出色:

但是,我不确定我正在寻找的内容是否被讨论过。这是我的理解:

  1. 当运行 docker run -v/host/something:/container/something 时,主机文件将覆盖(但不覆盖)指定位置的容器文件。容器将无法再访问该位置以前的文件,而只能访问该位置的主机文件。
  2. 在 Dockerfile 中定义 VOLUME 时,其他容器可能会共享镜像/容器创建的内容。
  3. 主机也可以查看/修改 Dockerfile 卷,但只能在使用 docker inspect 发现真正的挂载点之后。 (通常类似于 /var/lib/docker/vfs/dir/cde167197ccc3e138a14f1a4f7c....)。但是,当 Docker 必须在 Virtualbox 虚拟机中运行时,这很麻烦。

如何反转覆盖,以便在挂载卷时,容器文件优先于我的主机文件?

我想指定一个可以轻松访问容器文件系统的挂载点。我知道我可以为此使用数据容器,或者我可以使用 docker inspect 来查找挂载点,但在这种情况下,这两种解决方案都不是一个好的解决方案。

最佳答案

docker 1.10+ 共享文件的方式是通过一个卷,如 docker volume create .
这意味着您可以直接使用数据卷(您不需要专用于数据卷的容器)。

这样,您可以在容器中共享和装载该卷,然后将其内容保存在该卷中。
这更符合容器的工作方式:从主机隔离内存、cpu 和文件系统:这就是为什么你不能“挂载一个卷并让容器的文件优先于主机文件” : 这将打破容器隔离并将其内容暴露给主机。

关于image - 挂载 docker 主机卷但用容器的内容覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36107442/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com