12.5. 将网络堆栈从 CNI 切换到 Netavark

在以前的版本中,只有连接到单个 Container Network Interface(CNI)插件时,容器才可以使用 DNS。Netavark 是容器的网络堆栈。您可以将 Netavark 与 Podman 和其他开放容器项目(OCI)容器管理应用程序一起使用。Podman 的高级网络堆栈与高级 Docker 功能兼容。现在,多个网络中的容器访问这些网络上的容器。

Netavark 能够执行以下操作:

  • 创建、管理和移除网络接口,包括网桥和 MACVLAN 接口。
  • 配置防火墙设置,如网络地址转换(NAT)和端口映射规则。
  • 支持 IPv4 和 IPv6。
  • 改进对多个网络中容器的支持。

先决条件

  • container-tools 元数据包已安装。

流程

  1. 如果 /etc/containers/containers.conf 文件不存在,请将 /usr/share/containers/containers.conf 文件复制到 /etc/containers/ 目录中:

    # cp /usr/share/containers/containers.conf /etc/containers/
  2. 编辑 /etc/containers/containers.conf 文件,并在 [network] 部分中添加以下内容:

    network_backend="netavark"
  3. 如果您有任何容器或 pod,请将存储重置回初始状态:

    # podman system reset
  4. 重启系统:

    # reboot

验证

  • 验证网络堆栈是否已更改为 Netavark:

    # cat /etc/containers/containers.conf
    ...
    [network]
    network_backend="netavark"
    ...
注意

如果使用 Podman 4.0.0 或更高版本,请使用 podman info 命令检查网络堆栈设置。

其他资源