名称¶
podman-network-create - 创建 Podman 网络
概要¶
podman network create [选项] [名称]
描述¶
创建供 Podman 使用的网络配置。默认情况下,Podman 创建桥接连接。可以使用 -d macvlan 选项创建 Macvlan 连接。可以使用 -o parent=<设备>
或 --network-interface=<设备>
选项指定 macvlan 或 ipvlan 的父设备。
如果没有提供任何选项,Podman 将为网络分配一个空闲的子网和名称。
创建网络完成后,Podman 将显示新添加网络的名称。
选项¶
--disable-dns¶
禁用此网络的 DNS 插件,如果启用,它可以执行容器到容器的名称解析。它仅在 bridge
驱动程序中受支持,对于其他驱动程序,它始终被禁用。
--dns=ip¶
为此网络中的容器设置网络范围的 DNS 解析器/名称服务器。如果没有设置,则使用来自 /etc/resolv.conf
的主机服务器。它可以通过 podman run/create --dns
选项在容器级别覆盖。此选项可以多次指定以设置多个 IP。
--driver, -d=driver¶
管理网络的驱动程序。目前支持 bridge
、macvlan
和 ipvlan
。默认值为 bridge
。作为无根用户,macvlan
和 ipvlan
驱动程序无法访问主机网络接口,因为无根网络需要单独的网络命名空间。
netavark 后端允许使用所谓的 netavark 插件,请参见 netavark 中的 plugin-API.md 文档。二进制文件必须放置在指定的目录中,以便 podman 可以发现它,此列表在 containers.conf(5) 的 [network]
部分中的 netavark_plugin_dirs
中设置。
然后可以使用插件的名称作为驱动程序来为您的插件创建网络。可以使用 podman info --format {{.Plugins.Network}}
查看所有受支持的驱动程序和插件的列表。
请注意,macvlan
和 ipvlan
驱动程序不支持端口转发。插件的端口转发支持取决于插件的实现。
--gateway=ip¶
为子网定义网关。要提供网关地址,需要使用 subnet 选项。可以多次指定。--subnet、--gateway 和 --ip-range 选项的参数顺序必须匹配。
--ignore¶
如果具有相同名称的网络已存在,则忽略创建请求,而不是失败。请注意,尝试创建具有现有名称和不同参数的网络不会更改现有网络的配置。
--interface-name=name¶
此选项映射网络配置中的 network_interface 选项,请参见 podman network inspect。根据驱动程序的不同,这可能会产生不同的效果;对于 bridge
,它使用桥接接口名称。对于 macvlan
和 ipvlan
,它是主机上的父设备。它与 --opt parent=...
相同。
--internal¶
在使用 bridge
网络时,限制此网络的外部访问。请注意,在使用 CNI 后端时,DNS 会自动被禁用,请参见 --disable-dns。
在使用 macvlan
或 ipvlan
驱动程序时使用此选项,不会将默认路由添加到容器中。因为它绕过了主机网络堆栈,因此 podman 无法设置额外的限制,如果运行特权容器,它可以自行设置默认路由。如果这是一个问题,那么应该在您的实际网络网关上阻止容器连接。
--ip-range=range¶
从一个范围内分配容器 IP。范围必须是 CIDR 表示法中的完整子网,或者是在 <startIP>-<endIP>
语法中,与 CIDR 子网相比,它允许更灵活的范围。ip-range 选项必须与 subnet 选项一起使用。可以多次指定。--subnet、--gateway 和 --ip-range 选项的参数顺序必须匹配。
--ipam-driver=driver¶
设置网络的 ipam 驱动程序(IP 地址管理驱动程序)。当未设置时,podman 会根据网络驱动程序自动选择 ipam 驱动程序。
有效值为
dhcp
:IP 地址从网络上的 dhcp 服务器分配。当使用 netavark 后端时,必须启用netavark-dhcp-proxy.socket
以便在容器启动时启动 dhcp-proxy,对于 CNI,请改用cni-dhcp.socket
单位。host-local
:IP 地址在本地分配。none
:没有将 IP 地址分配给接口。
在 podman network inspect 输出的 ipam_options
字段中查看驱动程序。
--ipv6¶
启用 IPv6(双栈)网络。如果没有给出子网,它将分配一个 ipv4 和一个 ipv6 子网。
--label=label¶
为网络设置元数据(例如,--label mykey=value)。
--opt, -o=option¶
设置驱动程序特定的选项。
所有驱动程序都接受 mtu
、metric
、no_default_route
和选项。
mtu
:设置最大传输单元 (MTU),并采用整数值。metric
设置加入此网络的每个容器中创建的默认路由的路由度量。接受正整数。只能与 Netavark 网络后端一起使用。no_default_route
:如果设置为 1,Podman 将不会自动将默认路由添加到子网。仍然可以通过使用--route
创建自定义路由来手动添加路由。
此外,bridge
驱动程序支持以下选项
vlan
:此选项分配 VLAN 标签并启用 vlan_filtering。默认值为 none。isolate
:此选项通过阻止启用此选项的网络之间的流量来隔离网络。com.docker.network.bridge.name
:此选项将给定名称分配给创建的 Linux Bridgecom.docker.network.driver.mtu
:设置最大传输单元 (MTU),并采用整数值。vrf
:此选项将 VRF 分配给桥接接口。它接受 VRF 的名称,默认值为 none。只能与 Netavark 网络后端一起使用。
macvlan
和 ipvlan
驱动程序支持以下选项
parent
:用于 macvlan 接口的主机设备。默认值为默认路由接口。mode
:此选项在接口上设置指定的 ip/macvlan 模式。支持的
macvlan
值为bridge
、private
、vepa
、passthru
。默认值为bridge
。支持的
ipvlan
值为l2
、l3
、l3s
。默认值为l2
。
此外,macvlan
驱动程序支持 bclim
选项
bclim
:设置广播排队阈值。必须是 32 位整数。将此值设置为-1
将完全禁用广播排队。
--route=route¶
格式为 <destination in CIDR notation>,<gateway>,<route metric (optional)>
的静态路由。此路由将添加到此网络中的每个容器。仅适用于 netavark 后端。如果需要多个静态路由,可以多次指定。
--subnet=subnet¶
CIDR 表示法中的子网。可以多次指定以为此网络分配多个子网。--subnet、--gateway 和 --ip-range 选项的参数顺序必须匹配。这对于设置静态 ipv4 和 ipv6 子网很有用。
示例¶
创建一个没有任何选项的网络。
$ podman network create
podman2
创建一个名为newnet的网络,使用192.5.0.0/16作为其子网。
$ podman network create --subnet 192.5.0.0/16 newnet
newnet
创建一个名为newnetv6的IPv6网络,其子网为2001:db8::/64。
$ podman network create --subnet 2001:db8::/64 --ipv6 newnetv6
newnetv6
创建一个名为newnet的网络,使用192.168.33.0/24并定义网关为192.168.33.3。
$ podman network create --subnet 192.168.33.0/24 --gateway 192.168.33.3 newnet
newnet
创建一个使用192.168.55.0/24子网的网络,其IP地址范围为192.168.55.129 - 192.168.55.254。
$ podman network create --subnet 192.168.55.0/24 --ip-range 192.168.55.128/25
podman5
创建一个具有静态IPv4和IPv6子网的网络,并设置网关。
$ podman network create --subnet 192.168.55.0/24 --gateway 192.168.55.3 --subnet fd52:2a5a:747e:3acd::/64 --gateway fd52:2a5a:747e:3acd::10
podman4
创建一个具有静态子网和静态路由的网络。
$ podman network create --subnet 192.168.33.0/24 --route 10.1.0.0/24,192.168.33.10 newnet
创建一个具有静态子网和静态路由但没有默认路由的网络。
$ podman network create --subnet 192.168.33.0/24 --route 10.1.0.0/24,192.168.33.10 --opt no_default_route=1 newnet
使用主机接口eth0创建一个基于Macvlan的网络。Macvlan网络只能作为root使用。
$ sudo podman network create -d macvlan -o parent=eth0 --subnet 192.5.0.0/16 newnet
newnet
参见¶
podman(1), podman-network(1), podman-network-inspect(1), podman-network-ls(1), containers.conf(5)
历史记录¶
2021年8月,由Paul Holzinger pholzing@redhat.com更新了新的网络格式。
2019年8月,最初由Brent Baude bbaude@redhat.com编译。