在Docker swarm模式下的docker-compose.yml中使用{{node.hostname}}

时间:2018-05-08 17:46:45

标签: docker docker-swarm

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

搬运工-compose.yml

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

docker stack deploy test -c docker-compose.yml

  

但是低于输出/错误:来自守护进程的错误响应:rpc   错误:code = InvalidArgument desc =扩展主机名失败:   template:expansion:1:7:在< .Node.Hostname>处执行“扩展”:   无法在struct {ID string}

类型中评估字段主机名

这是我的docker-info输出:

docker info容器:

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

我尝试了1223version: '3.3'组成的设置。

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

创建堆栈后,我用

验证了主机名
version: '3.4'

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