通常使用简单的iptable规则从主机外部访问容器,该规则将主机上的端口转发到容器上具有容器内部IP的端口
-A PREROUTING -d 1.2.3.4/32 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.4.10:80
因此公共IP 1.2.3.4将路由到容器。使用正确的dns记录,也可以将FQDN(例如:test.example.com)指向此容器。到目前为止,所有事情都很有效。
但是在同一主机上的主机或邻居容器中,FQDN是无用的,不会路由到该容器。
目前,脏方法是将FQDN指向/etc/hosts
中的容器专用IP,用于主机和所有邻居容器。但我认为有更清洁的方法。
任何人都可以帮忙吗?
更新1:
经过多次尝试和错误后,只为主机获取此信息。通过在上面的规则旁边设置它,它将来自主机的数据包路由到该FQDN到容器
iptables -A OUTPUT -d 1.2.3.4/32 -j DNAT --to-destination 10.0.4.10 -t nat
但是nieghbor容器仍然无法使用该FQDN。