【问题标题】:Can I mount same volume to multiple docker containers我可以将相同的卷挂载到多个 docker 容器吗
【发布时间】:2017-03-17 10:21:58
【问题描述】:

我需要将应用程序日志共享到挂载的卷。 我想将相同的卷安装到所有 docker 容器以保留日志。 可能吗?它会影响在每个容器上运行的应用程序吗?

docker run -d  --name C1 -v /home/ubuntu/logs:/usr/local/apache/htdocs/ httpd
docker run -d  --name C2 -v /home/ubuntu/logs:/etc/app/logs my-docker-image:latest
docker run -d  --name C3 -v /home/ubuntu/logs:/usr/logs TestImage:latest

【问题讨论】:

    标签: docker dockerfile


    【解决方案1】:

    是的,您可以将与卷相同的位置添加到许多 docker 容器中。

    此外,您可以使用--volumes-from 将您的日志目录挂载到一个实际上不运行任何应用程序的容器中,然后在您的其他容器中使用该容器中的卷,而无需在任何地方重复路径。

    值得一读Docker volumes

    【讨论】:

      【解决方案2】:

      我将同一个目录安装到多个容器中,但用于读取目的,而不是写入(如果您的日志写入容器中。我认为如果它们写入不同的文件,它应该可以工作..

      【讨论】:

      • 我想挂载日志。我有许多 docker 容器正在运行,但我将日志文件保存为 log.txt 以供所有正在运行的服务。那么如何区分哪个服务的哪个日志文件,因为所有日志文件都使用相同的名称?
      • 我认为您可以挂载特定文件而不是所有目录,并在主机中为其命名:/path/in/container/log.txt:/path/in/host/container1_log.txt
      • @ItayB 请注意这一点,因为如果您的文件被旋转或 inode 由于任何原因发生更改,docker 中的文件将不再指向您期望的文件...
      猜你喜欢
      • 1970-01-01
      • 2021-09-17
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多