我正在使用marathon运行docker容器,并尝试将该容器的dns服务器设置为指向本地主机上的consur代理。在容器内部,marathon/mesos正在设置环境变量(可以在“args”中使用),但是我需要从服务器的ip地址来传递给 --dns
上的选项 docker run
. 例如,这不起作用,因为无法解析主机变量:
{
"id": "demo",
"cmd": "python3 -m http.server 8080",
"cpus": 0.5,
"mem": 64.0,
"instances": 2,
"container": {
"type": "DOCKER",
"docker": {
"image": "python:3",
"network": "BRIDGE",
"parameters": [{
"key": "dns",
"value": "$HOST"
}],
"portMappings": [{
"containerPort": 8080,
"hostPort": 0,
"protocol": "tcp"
}]
}
},
}
我试过使用一个mesos slave可以访问的环境变量,但这似乎也不起作用。有什么建议吗?
1条答案
按热度按时间gg0vcinb1#
我从未试过使用
$HOST
中的变量parameters
但你可以在cmd
说明符。你可以这样做:myscript.py中的第一个程序参数是mesos从机的主机名或ip地址。
在myscript.py中,需要执行以下操作:
如果$host varaible包含主机名,请将主机名解析为ip地址。
将/etc/resolv.conf中的名称服务器更改如下: