Управление контейнерной сетью#
Вывод списка контейнерных сетей#
В 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. Контейнеры во внутренней сети могут взаимодействовать с другими контейнерами на хосте, но не могут подключаться к сети за его пределами и не доступны вне его.
Создайте внешнюю сеть с именем
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для удаления контейнеров и pod.Опционально. Проверьте удаление сети
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