我确信这个问题已经被问过一百万次了,但由于某种原因,我在网上就是找不到任何东西。
我有两个用 Podman(类似于 Docker)创建的网络。
当我执行 localhost:9998 时它就超时了。
所以根本就无法连接。
有没有办法创建网桥,以便我可以在特定的容器网络中卷曲我的容器?
更新
[
{
"cniVersion": "0.4.0",
"name": "search",
"plugins": [
{
"bridge": "cni-podman0",
"ipMasq": true,
"ipam": {
"ranges": [
[
{
"gateway": "10.89.0.1",
"subnet": "10.89.0.0/24"
}
]
],
"routes": [
{
"dst": "0.0.0.0/0"
}
],
"type": "host-local"
},
"isGateway": true,
"type": "bridge"
},
{
"capabilities": {
"portMappings": true
},
"type": "portmap"
},
{
"backend": "iptables",
"type": "firewall"
}
]
}
]
答案1
您可以使用podman inspect <container-name>
来获取容器的 IP 地址。
此处的命令仅返回 IP 地址:
podman inspect <container-name> --format '{{.NetworkSettings.IPAddress}}'
答案2
从我读到的内容来看,我需要从podman network inspect search
它是:10.89.0.1
当我用 CURL 方式检测该 IP 时,它仍然不起作用。
但后来我在 IPtables 中发现了这一点:
Chain INPUT (policy DROP)
...
Chain FORWARD (policy ACCEPT)
target prot opt source destination
CNI-FORWARD all -- anywhere anywhere /* CNI firewall plugin rules */
Chain OUTPUT (policy ACCEPT)
...
Chain CNI-FORWARD (1 references)
target prot opt source destination
...
ACCEPT all -- anywhere 10.89.0.20 ctstate RELATED,ESTABLISHED
ACCEPT all -- 10.89.0.20 anywhere
ACCEPT all -- anywhere 10.89.1.2 ctstate RELATED,ESTABLISHED
ACCEPT all -- 10.89.1.2 anywhere
...
IP 10.89.0.20 和 10.89.1.2 是我的主机访问每个 podman 网络的 IP。