挂载操作系统特定的卷

Posted

技术标签:

【中文标题】挂载操作系统特定的卷【英文标题】:Mounting OS specific volumes 【发布时间】:2018-07-08 12:01:08 【问题描述】:

我正在尝试设置一个 filebeat docker 容器,该容器需要从所有其他正在运行的容器中访问生成的 docker 日志。为此,我安装了一个这样的卷:

  filebeat:
    build: filebeat
    volumes:
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - elk

我的问题:

docker 日志的路径取决于 docker-compose 正在运行的机器。以上适用于Linux,但不适用于我的Windows机器。当我运行上述内容时,出现以下错误:

错误:对于 filebeat 无法为服务 filebeat 创建容器: b'Mount denied:\n源路径 "\\var\\lib\\docker\\containers:/var/lib/docker/containers"\nis 不是有效的 Windows 路径'

【问题讨论】:

【参考方案1】:

我必须将 COMPOSE_CONVERT_WINDOWS_PATHS 环境变量设置为 1。使用 Windows Powershell 只需运行以下命令:

$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "1"

要检查它是否真的设置运行:$Env:COMPOSE_CONVERT_WINDOWS_PATHS

然后重启docker-compose:

docker-compose stop
docker-compose up

【讨论】:

以上是关于挂载操作系统特定的卷的主要内容,如果未能解决你的问题,请参考以下文章

将 Virtualbox 共享文件夹挂载为在来宾操作系统上运行的 Docker 的卷

Linux的硬盘使用情况挂载SSD挂载(查看df -h不能看到的卷)

GlusterFS分布式文件系统的卷类型及配置详解

sh 查看附加的卷和挂载点

如何将挂载点的卷 GUID 转换为实际路径?

sh 请参阅apache容器中的卷大小和挂载绑定