【问题标题】:{{node.hostname}} usage in docker-compose.yml in Docker swarm modeDocker swarm 模式下 docker-compose.yml 中的 {{node.hostname}} 用法
【发布时间】:2018-10-18 18:01:45
【问题描述】:

您好,我正在查看上面的示例并尝试运行 docker swarm stack 但出现以下错误。不知道我在这里缺少什么。

docker-compose.yml

services:
  nginx:
    image: nginx
    hostname: '{{.Node.Hostname}}'
version: '3.3'

docker stack deploy test -c docker-compose.yml

但低于输出/错误:来自守护进程的错误响应:rpc 错误:代码 = InvalidArgument desc = 扩展主机名失败: 模板:扩展:1:7:在 <.node.hostname> 处执行“扩展”: 无法评估 struct { ID string }

类型中的字段主机名

这是我的 docker-info 输出:

码头信息容器:

12 运行:0 暂停:0 停止: 12 张图片:41 服务器版本:18.03.1-ce 存储驱动:devicemapper 池名称:docker-253:1-2490377-pool 池 块大小:65.54kB 基础 设备大小:10.74GB 支持文件系统:

提前致谢。

【问题讨论】:

  • 你试过用双引号吗?并将版本放在文件顶部
  • 我遇到了同样的问题,您找到解决方案了吗?

标签: docker docker-swarm


【解决方案1】:

我用 compose 的 version: '3.3'version: '3.4' 尝试了你的设置。

根据https://docs.docker.com/engine/reference/commandline/service_create/#create-services-using-templates,主机名是您可以使用模板字符串的字段之一,因此应该可以正常工作。

创建堆栈后,我验证了主机名

$ docker inspect test_nginx | grep name
"com.docker.stack.namespace": "test"
"com.docker.stack.namespace": "test"
"Hostname": "{{.Node.Hostname}}",

所以我认为这已经在更新版本的 docker 中得到修复,或者您的主机设置有些奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多