Управление контейнерной сетью#
Вывод списка контейнерных сетей#
В 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": "hh.hh.hh.hh",
"subnet": "hh.hh.hh.hh/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. Контейнеры во внутренней сети могут взаимодействовать с другими контейнерами на хосте, но не могут подключаться к сети за его пределами и не доступны вне его.
Создайте внешнюю сеть с именем newnet:
podman network create newnet
Проверка#
Выведите список всех сетей:
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 для подключения контейнера к сети.
Для подключения контейнера mycontainer к сети с именем newnet введите:
podman network connect newnet mycontainer
Для проверки подключения mycontainer к сети newnet используйте команду:
podman inspect --format='{{.NetworkSettings.Networks}}' mycontainer
Пример вывода команды:
map[podman:0xc00042ab40 newnet:0xc00042ac60]
В выводе отражено, что контейнер подключен к сетям newnet и podman.
Отключение контейнера от сети#
Используйте команду podman network disconnect, чтобы отключить контейнер от сети.
Для отключения контейнера mycontainer от сети с именем newnet введите:
podman network disconnect newnet mycontainer
Для проверки отключения mycontainer от сети newnet используйте команду:
podman inspect --format='{{.NetworkSettings.Networks}}' mycontainer
Пример вывода команды:
map[podman:0xc000537440]
В выводе отражено, что у контейнера нет подключения к сети newnet но по умолчанию сохраняется подключение к сети podman.
Удаление сети#
Используйте команду podman network rm для удаления определенной сети:
Раскройте список всех сетей:
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Удалите сеть
newnet:podman network rm newnet
Примечание
Если удаляемая сеть имеет связанные с ней контейнеры, необходимо использовать команду podman network rm -f для удаления контейнеров и pods.
Проверка#
Проверьте удаление сети 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.
Для удаления всех неиспользуемых сетей введите команду:
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
Чтобы проверить, все ли сети удалены, введите команду:
podman network ls
Пример вывода команды:
NETWORK ID NAME VERSION PLUGINS
2f259bab93aa podman 0.4.0 bridge,portmap,firewall,tuning