Управление контейнерной сетью#

Вывод списка контейнерных сетей#

В Podman существует два режима работы сети - с административными полномочиями и без административных полномочий. Сеть без административных полномочий настраивается автоматически, у контейнера отсутствует IP-адрес. В сети с административными полномочиями IP-адрес присутствует.

Выведите список всех сетей от имени пользователя с административными полномочиями:

podman network ls

Пример вывода команды:

NETWORK ID    NAME        VERSION     PLUGINS
2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning

По умолчанию Podman предлагает сетевой мост. Списки сетей для пользователя без административных полномочий и пользователя с административными полномочиями совпадают.

Проверка сети#

Выведите IP-адреса, включенные плагины, тип сети и т.д. для указанной сети в виде списка с помощью команды podman network ls.

Раскройте информацию о сети по умолчанию podman с помощью команды:

podman network inspect podman

Пример вывода команды:

[
    {
        "cniVersion": "0.4.0",
        "name": "podman",
        "plugins": [
            {
                "bridge": "cni-podman0",
                "hairpinMode": true,
                "ipMasq": true,
                "ipam": {
                    "ranges": [
                        [
                            {
                                "gateway": "<IP_address>",
                                "subnet": "<IP_address>/16"
                            }
                        ]
                    ],
                    "routes": [
                        {
                            "dst": "0.0.0.0/0"
                        }
                    ],
                    "type": "host-local"
                },
                "isGateway": true,
                "type": "bridge"
            },
            {
                "capabilities": {
                    "portMappings": true
                },
                "type": "portmap"
            },
            {
                "type": "firewall"
            },
            {
                "type": "tuning"
            }
        ]
    }
]

В данном списке представлена информация о диапазоне IP-адресов, включенных плагинах, типе сети и о других сетевых настройках.

Создание сети#

Используйте команду podman network create для создания новой сети.

Примечание

По умолчанию Podman создает внешнюю сеть. Для создания внутренней сети используйте команду podman network create --internal. Контейнеры во внутренней сети могут взаимодействовать с другими контейнерами на хосте, но не могут подключаться к сети за его пределами и не доступны вне его.

  1. Создайте внешнюю сеть с именем newnet:

    podman network create newnet
    
  2. Опционально. Выведите список всех сетей:

    podman network ls
    

    Пример вывода команды:

    NETWORK ID    NAME        VERSION     PLUGINS
    2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning
    11c844f95e28  newnet      0.4.0       bridge,portmap,firewall,tuning,dnsname
    

    В выводе отразилась сеть по умолчанию podman и созданная сеть newnet.

    Примечание

    Начиная с Podman версии 4.0, при создании новой внешней сети с помощью команды podman network create плагин DNS включен по умолчанию.

Подключение контейнера к сети#

Используйте команду podman network connect для подключения контейнера к сети.

  1. Для подключения контейнера mycontainer к сети с именем newnet введите:

    podman network connect newnet mycontainer
    
  2. Опционально. Для проверки подключения mycontainer к сети newnet используйте команду:

    podman inspect --format='{{.NetworkSettings.Networks}}' mycontainer
    

    Пример вывода команды:

    map[podman:0xc00042ab40 newnet:0xc00042ac60]
    

    В выводе отражено, что контейнер подключен к сетям newnet и podman.

Отключение контейнера от сети#

Используйте команду podman network disconnect, чтобы отключить контейнер от сети.

  1. Для отключения контейнера mycontainer от сети с именем newnet введите:

    podman network disconnect newnet mycontainer
    
  2. Опционально. Для проверки отключения mycontainer от сети newnet используйте команду:

    podman inspect --format='{{.NetworkSettings.Networks}}' mycontainer
    

    Пример вывода команды:

    map[podman:0xc000537440]
    

    В выводе отражено, что у контейнера нет подключения к сети newnet но по умолчанию сохраняется подключение к сети podman.

Удаление сети#

Используйте команду podman network rm для удаления определенной сети.

  1. Раскройте список всех сетей:

    podman network ls
    

    Пример вывода команды:

    NETWORK ID    NAME        VERSION     PLUGINS
    2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning
    11c844f95e28  newnet      0.4.0       bridge,portmap,firewall,tuning,dnsname
    
  2. Удалите сеть newnet:

    podman network rm newnet
    

    Примечание

    Если удаляемая сеть имеет связанные с ней контейнеры, необходимо использовать команду podman network rm -f для удаления контейнеров и pod.

  3. Опционально. Проверьте удаление сети newnet:

    podman network ls
    

    Пример вывода команды:

    NETWORK ID    NAME        VERSION     PLUGINS
    2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning
    

Удаление всех неиспользуемых сетей#

Используйте команду podman network prune для удаления всех неиспользуемых сетей, к которым не подключены контейнеры. Команда podman network prune не удаляет сеть podman.

  1. Для удаления всех неиспользуемых сетей введите команду:

    podman network prune
    

    Пример вывода команды:

    WARNING! This will remove all networks not used by at least one container.
    Are you sure you want to continue? [y/N] y
    
  2. Опционально. Проверьте, все ли сети удалены, введите команду:

    podman network ls
    

    Пример вывода команды:

    NETWORK ID    NAME        VERSION     PLUGINS
    2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning