当我检查入口时,我获取有关容器的信息:
$docker inspect ingress
"Containers": {
"1234567890": {
"Name": "gateway.1.qwertyuiop",
"EndpointID": "12345678990",
"MacAddress": "00:11:22:33:44:55",
"IPv4Address": "10.255.0.11/16",
"IPv6Address": ""
},
"ingress-sbox": {
"Name": "ingress-endpoint",
"EndpointID": "1234567890",
"MacAddress": "00:11:22:33:44:55",
"IPv4Address": "10.255.0.3/16",
"IPv6Address": ""
}
},
然后我可以检查第一个容器,但检查ingress-endpoint
不返回任何内容
$ docker inspect ingress-endpoint
[]
我想要找到的是群集节点中入口端点的本地IP。
答案 0 :(得分:1)
当运行[]
给出ingress
的输出时,很可能意味着这样的端点是一个陈旧的容器,它仍然挂钩docker network disconnect ingress --force ingress-endpoint
网络。您可能希望断开网络连接,删除此类容器,然后通过执行
docker network rm ingess
org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException
答案 1 :(得分:0)
不确定为什么需要这样做,但是如果您要查找传入数据包的路由位置,则可以查看iptables。
iptables -n -t nat -L DOCKER-INGRESS
在我的设置(其中一项服务发布端口80)上,我得到以下输出:
Chain DOCKER-INGRESS (2 references)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.18.0.2:80
RETURN all -- 0.0.0.0/0 0.0.0.0/0
所以172.18.0.2
是入口容器的IP地址
请注意,此ingress-sbox
容器是Swarm模式为您创建的两个网络的一部分:
这是Linux网络名称空间的所有部分,正如这篇非常好的文章https://neuvector.com/network-security/docker-swarm-container-networking/中所解释的,我建议阅读。
# cd /var/run/
# ln -s docker/netns .
# ip netns exec ingress_sbox ip addr
这给出了(在我的系统上):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
7: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
link/ether 02:42:0a:ff:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.255.0.2/16 brd 10.255.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.255.0.4/32 brd 10.255.0.4 scope global eth0
valid_lft forever preferred_lft forever
10: eth1@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet 172.18.0.2/16 brd 172.18.255.255 scope global eth1
valid_lft forever preferred_lft forever
您还可以在那些网络名称空间中运行iptables命令,以尝试并遵循神奇路由数据包的方式...