我正在使用docker 1.12和rancher server 1.5.9。我试图在牧场主中创建一个堆栈来部署和编排我的应用程序。我的问题是我需要传递容器将运行的主机的主机名env var
。
由于我只有一个图像将用于在多个主机上创建一种容器(让我们说2对于测试)我不能像HOSTNAME=myhostname
那样传递它。该值必须是var
,将使用docker host设置。
有没有人知道如何使用牧场服务器UI进行此操作? 有没有人知道牧羊人在添加自定义主机时如何检索主机名?
我们可以使用入口点或CMD来做到这一点吗?
答案 0 :(得分:0)
在我的案例中,在/etc/hosts
上为所需名称设置优先级的机器上有localhost
。显然,/etc/hostname
也同意/etc/hosts
。
我正在使用容器linux。所以对我来说,在转换为点火之前,它在ct-config中看起来是这样的。
storage:
files:
- filesystem: "root"
path: "/etc/hostname"
mode: 0644
contents:
inline: ${hostname}
- filesystem: "root"
path: "/etc/hosts"
mode: 0644
contents:
inline: "127.0.0.1 ${hostname} localhost\n
::1 ${hostname} localhost"
在运行牧场主注册行之前,请确保使用上述内容。
sudo docker run --rm --privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/rancher:/var/lib/rancher \
rancher/agent:v1.2.7 https://myrancher/v1/scripts/TOKEN