管理安全容器的生命周期

启动安全容器

用户可以使用iSulad作为安全容器的容器引擎,启动安全容器的操作步骤如下:

  1. 确保安全容器组件已经正确安装部署。
  2. 准备容器镜像。假设容器镜像为busybox,使用iSula容器引擎下载容器镜像的命令如下:

    1. isula pull busybox
  3. 启动一个安全容器。使用Sula容器引擎启动安全容器的命令如下:

    1. isula run -tid --runtime io.containerd.kata.v2 --net none busybox <command>

    管理安全容器的生命周期 - 图1 说明:
    安全容器网络使用仅支持CNI网络,不支持CNM网络,不支持使用-p和—expose暴露容器端口,使用安全容器时需指定参数—net=none。

  4. 启动一个Pod

    1. 启动pause容器并根据回显获取pod的sandbox-id。使用iSula容器引擎启动的命令如下:

      1. isula run -tid --runtime io.containerd.kata.v2 --net none --annotation io.kubernetes.cri.container-type=sandbox <pause-image> <command>
    2. 创建业务容器并加入到这个pod中。使用iSula容器引擎创建的命令如下:

      1. isula run -tid --runtime kata-runtime --network none --annotation io.kubernetes.cri.container-type=container --annotation io.kubernetes.cri.sandbox-id=<sandbox-id> busybox <command>

      其中—annotation用于容器类型的标注。

停止安全容器

  • 停止一个安全容器。

    1. isula stop <contaienr-id>
  • 停止一个Pod。

    Pod停止需要注意顺序,pause容器与Pod生命周期相同,因此先停止业务容器后再停止pause容器。

删除安全容器

删除前请确保容器已经停止:

  1. isula rm <container-id>

如果需要强制删除一个正在运行的容器,可以使用-f强制删除:

  1. isula rm -f <container-id>

在容器中执行一条新的命令

由于pause容器仅作为占位容器,如果启动一个Pod时,请在业务容器内执行新的命令,pause容器并没有相应的指令;如果只启动一个容器时,则可以直接执行新增命令:

  1. isula exec -ti <container-id> <command>

管理安全容器的生命周期 - 图2 说明:

  1. 如果使用-d参数则命令在后台执行,不会打印错误信息,其退出码也不能作为命令执行是否正确的判断依据。