首页 > 解决方案 > 挂载操作系统特定的卷

问题描述

我正在尝试设置一个 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”\不是有效的 Windows 路径'

标签: dockerdocker-compose

解决方案


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

$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "1"

要检查它是否实际设置运行:$Env:COMPOSE_CONVERT_WINDOWS_PATHS

然后只需重新启动 docker-compose:

docker-compose stop
docker-compose up

推荐阅读