我创建了一个go脚本,该脚本在链接到我的eno1接口的IP之间进行切换。
如果我的程序执行curl --interface "51.15.xx.xx" ...
并在我的3个IP之间切换
在我的界面下面:
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ac:1f:6b:27:xx:xx brd ff:ff:ff:ff:ff:ff
inet 51.15.xx.xx/24 brd 51.15.21.255 scope global eno1
valid_lft forever preferred_lft forever
inet 212.83.xx.x1/24 brd 212.83.154.255 scope global eno1
valid_lft forever preferred_lft forever
inet 212.83.xx.x2/24 brd 212.83.154.255 scope global secondary eno1
valid_lft forever preferred_lft forever
当他直接在主机上运行时,我的程序可以完美运行,他也可以
docker run --network=host
。
但是在具有docker swarm(在1个节点上部署)的生产环境中,我无法绑定主机网络,并且我的程序无法运行。我收到错误消息:bind failed with errno 99: Address not available
我只想将host
网络与群集服务上的本地范围绑定或允许我的群集服务绑定主机ip
PS:我已经尝试绑定网络主机,但是当我执行docker stack deploy
时,泊坞窗选择一个具有范围群的host
网络。
最诚挚的问候
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试使用直接命令来创建服务,例如:
代码
docker service create --network host ddmitrii/echo
Docker映像未公开任何端口
检查
curl localhost:8000
输出
Pong
因此端口连接到主机,并且可以从任何接口访问。