docker - 挂载操作系统特定的卷
问题描述
我正在尝试设置一个 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 路径'
解决方案
我必须将COMPOSE_CONVERT_WINDOWS_PATHS
env 变量设置为 1。使用 Windows Powershell 只需运行以下命令:
$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "1"
要检查它是否实际设置运行:$Env:COMPOSE_CONVERT_WINDOWS_PATHS
然后只需重新启动 docker-compose:
docker-compose stop
docker-compose up
推荐阅读
- r - 在集群上运行时 R 脚本出错。脚本在笔记本电脑上运行良好
- ruby-on-rails - 我该怎么办?即使在更新 Sprockets 之后,Heroku 也阻止了我的推送
- angular - 角度 5/6:错误错误:mat-form-field 必须包含 MatFormFieldControl
- sql - 不能在 postgreSQL 中声明为时间戳
- python - 安装模块后 python 出现 ModuleNotFoundError
- java - 如何删除java derby数据库中的空数据?
- python - 三重嵌套 while 循环 Python 3.6.5 不是无限期的
- validation - 使用 vuelidate 验证嵌套对象时在 vuetify 中显示错误消息
- c# - 以循环为中心缩放图片框中的图像
- java - MockServer 期望的 Java 正则表达式 URL