【问题标题】:ubuntu 16.04: docker not syncing its directory with the host's directoryubuntu 16.04:docker 没有将其目录与主机目录同步
【发布时间】:2019-03-22 03:31:19
【问题描述】:

我正在尝试运行一个 docker 容器。此 docker 容器包含目录 /mnt 内的一组文件。我希望这个目录在创建容器时自动复制到主机的机器 /mnt 目录中,并且在容器的 /mnt 目录中更改的任何内容也应该在主机目录中更改。

我正在运行这个命令: docker run -d --restart always -v /mnt:/mnt <image name>

发生的情况是,容器的目录没有被复制到主机,而是发生了相反的情况。正在复制主机的空 /mnt 目录并覆盖容器的 /mnt 目录。

为什么会这样?我该如何解决?

【问题讨论】:

  • 是的,当您将主机目录挂载到容器目录时。主机和容器目录是同步的。主机容器将覆盖容器,然后容器内的任何更改也将覆盖主机目录
  • 好的,但我希望相反的情况发生。我希望 docker 容器内的内容覆盖主机容器上的内容

标签: docker volume docker-volume


【解决方案1】:

正确的方法是让您设计容器,使其不会在容器中创建数据,而是使用挂载 /mnt。

但如果必须,标准卷可以满足您的需求:

docker volume create hostmnt
docker run -d --restart always -v hostmnt:/mnt <image name>

之后,您可以执行 shell 脚本将卷复制或映射到所需的 wtv 目录。

但我的建议是docker cp 内容,如果可能的话,将所有需要保存的数据重定向到主机或数据环境。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-08
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多