Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在容器中运行第三方应用程序

要在 Junos OS Evolved 上运行自己的应用程序,您可以选择将其部署在 Docker 容器中。容器在 Junos OS Evolved 上运行,代理在容器内运行,将其与操作系统隔离开来。容器安装在安装在 /var/extensions 上的独立分区中。

注意:

Docker 容器未集成到 Junos OS Evolved 中,它们完全通过 Linux 使用 Docker 命令创建和管理。有关 Docker 容器和命令的详细信息,请参阅官方 Docker 文档: https://docs.docker.com/get-started/

容器对可从系统中使用的资源有默认限制:

  • Storage/var/extensions 分区大小由平台驱动:8GB 或 /var 总大小的 30%,以较小者为准。

  • Memory – 容器的默认限制为 2GB 或总物理内存的 10%,以较小者为准。

  • CPU – 容器的默认限制在所有核心上最多使用 CPU 20%。

注意:

如有必要,您可以修改容器的资源限制。请参阅 修改容器的资源限制

部署 Docker 容器

要部署 docker 容器:

  1. 使用 vrf0 插座启动 docker 服务:
  2. 设置以下 setenv 变量:
  3. 导入图像。
    注意:

    命令的 import URL 需要针对不同的容器进行更改。

  4. 确保已下载图像并获取图像 ID。
  5. 使用图像 ID 创建容器并在该容器中输入 bash 会话。
    注意:

    除非您使用 -it 该参数,否则 Docker 容器默认情况下会被守护。

管理 Docker 容器

Docker 容器通过 Linux 工作流程进行管理。 ps 使用 或 top Linux 命令显示运行的 Docker 容器,并使用 Docker 命令管理容器。有关 Docker 命令的详细信息,请参阅: https://docs.docker.com/engine/reference/commandline/cli/

注意:

Junos OS Evolved 高可用性功能不支持 Docker 容器中的自定义应用程序,如果应用程序具有高可用性功能,则应在每个 RE 上运行应用程序以确保其能够同步。

为 Docker 容器选择 VRF

容器从 Docker 守护程序继承虚拟路由和转发 (VRF)。为了在不同的 VRF 中运行容器,需要在相应的 VRF 中启动 Docker 守护程序实例。该 docker@vrf.service 实例允许在相应的 VRF 中启动守护程序。如果 VRF 未指定,则 VRF 默认为 vrf0

docker.service 认情况下运行 vrf:none

特定 VRF 的 docker 守护程序在 /run/docker-vrf.sock 的对应插座上侦听。

Docker 客户端使用以下参数与 VRF 特定 docker 守护程序相关联:

例如,要在以下 Docker 命令和参数中 vrf0 运行容器:

注意:

容器只能与单个 VRF 相关联。

修改容器的资源限制

容器的默认资源限制通过位于 /等/扩展/platform_attributes的文件进行控制。打开此文件时,您将看到以下文本:

要更改容器的资源限制,请为 EXTENSIONS 文件底部的条目添加值:

  • EXTENSIONS_FS_DEVICE_SIZE_MIB= 控制容器可以使用的最大存储空间。输入字节值。默认值为 8GB 或 /var 总大小的 30%,以较小者为准。

  • EXTENSIONS_CPU_QUOTA_PERCENTAGE= 控制容器可使用的最大 CPU 使用量。按 CPU 使用量的百分比输入值。默认值是所有核心中最大 CPU 使用的 20%

  • EXTENSIONS_MEMORY_MAX_MIB= 控制容器可以使用的最大物理内存量。输入字节值。默认值为 2GB 或总物理内存的 10%,以较小者为准。

谨慎:

修改容器的资源限制之前,请注意配置中必须支持的规模的 CPU 和内存要求。增加容器的资源限制以防止其对系统造成压力时,请小心谨慎。