Docker 将卷装载到包含同名文件的位置会覆盖这些文件还是会使用它们?

Docker 将卷装载到包含同名文件的位置会覆盖这些文件还是会使用它们?,docker,Docker,我在找人帮忙。如果我使用docker run运行容器,并且我使用-v装载到已包含文件的卷(这些文件是容器上一次运行的文件,但配置文件已编辑)。我运行的容器会使用我覆盖的文件的内容,还是会使用容器中的文件,而忽略我编辑的文件? 我在跑步 sudo docker run--rm-it-p“8000:8000”-v”/opt/stellar:/opt/stellar--name stellar stellar/quickstart--testnet 在我的机器(AWS EC2)上的/opt/stell

我在找人帮忙。如果我使用
docker run
运行容器,并且我使用
-v
装载到已包含文件的卷(这些文件是容器上一次运行的文件,但配置文件已编辑)。我运行的容器会使用我覆盖的文件的内容,还是会使用容器中的文件,而忽略我编辑的文件? 我在跑步
sudo docker run--rm-it-p“8000:8000”-v”/opt/stellar:/opt/stellar--name stellar stellar/quickstart--testnet

在我的机器(AWS EC2)上的
/opt/stellar
中,我有文件,其中包括一个编辑过的stellar-core.cfg文件

对不起,如果这是一个有点混乱的问题。我正在尽力解释我的意思。感谢您的帮助。

如果您运行:

docker run -v /host/directory:/container/directory ...
然后,主机目录中的内容将始终隐藏该路径上映像中的内容,如果容器中的应用程序在
/container/directory
中进行更改,它们将反映在相应的主机目录中

如果更新映像以使其在容器目录中发生更改,并且运行相同的
docker run
命令,则主机目录仍将隐藏映像的内容,并且在重新运行的容器中看不到这些更改。

如果运行:

docker run -v /host/directory:/container/directory ...
然后,主机目录中的内容将始终隐藏该路径上映像中的内容,如果容器中的应用程序在
/container/directory
中进行更改,它们将反映在相应的主机目录中


如果更新映像使其在容器目录中发生更改,并且运行相同的
docker run
命令,则主机目录仍将隐藏映像的内容,并且在重新运行的容器中看不到这些更改。

严格地说,您谈论的不是
,而是
绑定装载,与
卷不同,它们允许您指定主机上的位置

你的问题的答案如下:

  • 绑定装载始终使用主机内容。若容器在装入的文件夹中有某些内容,它将被覆盖

  • 每当您从容器中修改文件夹时,更改都会在主机上保留(除非您以只读模式绑定,否则您的更改将被拒绝)


  • 严格地说,您谈论的不是
    ,而是
    绑定装载
    ,与
    不同,它们允许您指定主机上的位置

    你的问题的答案如下:

  • 绑定装载始终使用主机内容。若容器在装入的文件夹中有某些内容,它将被覆盖

  • 每当您从容器中修改文件夹时,更改都会在主机上保留(除非您以只读模式绑定,否则您的更改将被拒绝)