【发布时间】:2019-03-24 11:06:28
【问题描述】:
我的目标是在 docker 中为我的所有 docker-compose 在同一主机上的所有域中使用 1 个桥接网络。
我为我的 docker-compose 基础设施配置了 3 个 yml 文件,并且我为所有这些基础设施使用了 1 个外部网桥网络 dockerprometheus_back-tier。 一个 YAML 文件用于反向代理(traefik),每个域名一个 YAML 文件(2 个文件)。
每次我尝试使用命令 docker-compose -f mail.yml down && docker-compose -f mail.yml up -d 停止和启动最后一个 YAML 时,我都得到:
yaml.scanner.ScannerError: mapping values are not allowed here
在yml 3中注释了大部分命令后,我明白问题出在我添加name: dockerprometheus_back-tier这一行时
但是在另外 2 个 yml 文件中,我已经做了完全相同的配置来使用这个网络并且 yaml 处理器没有抱怨。
YAML 1
version: '3'
networks:
internal:
external: false
prometheus:
external: true
name: dockerprometheus_back-tier
YAML 2
version: '3'
networks:
onlyinternal:
driver: bridge
external: false
prometheus:
external: true
name: dockerprometheus_back-tier
docker network ls
04e3348408c4 dockerprometheus_back-tier bridge local
我应用了 dos2unix 来清理 YAML 3 上的编码,但没有改变任何东西。我直接复制了 YAML 3,保留了第一行,并尝试启动它,但它也因同样的错误而失败。 docker 是否有限制从外部文件使用 3 倍相同的桥接网络?如何解决?
Docker 版本 18.09.3,内部版本 774a1f4,CentOS Linux 版本 7.6.1810(核心)
YAML 3:
version: '3'
networks:
mail_network:
driver: bridge
external: false
prometheus:
external: true
name: dockerprometheus_back-tier
【问题讨论】:
-
欢迎来到Stack Overflow。指示代码块最好通过将块缩进四个空格来完成(在块上使用:Ctrl+K)。您对三反引号的使用吞噬了该行 (
version: 3) 后面的文本,现在它显示了。您还应该注意,文件格式是 YAML,并且自 2006 年以来,YAML 文件的推荐扩展名一直是.yaml。
标签: networking docker-compose yaml external