挂载操作系统特定的卷
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 的卷