Назад | Перейти на главную страницу

Как я могу получить доступ к сети контейнера?

Я уверен, что об этом спрашивали миллион раз, но по какой-то причине я просто не могу найти ничего в Интернете.

У меня есть две сети, которые я создал с помощью 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"
        }
    ]
}

]

Из того, что я читал, мне нужно было получить IP-адрес шлюза от 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 - это IP-адреса моего хоста для доступа к каждой из сетей podman.

Ты можешь использовать podman inspect <container-name> чтобы получить IP-адрес контейнера.

Эта команда возвращает только IP-адрес:

podman inspect <container-name> --format '{{.NetworkSettings.IPAddress}}'