为了达到更高的安全性,ContainerOS原则上不支持任何账户直接登录实例进行操作,也不提供SSH登录功能。若您仍然有登录实例进行运维的需求,可以启动并登录运维容器。本文介绍ContainerOS运维容器的常见操作。

前提条件

  • 已安装ECS云助手客户端。管理运维容器需要通过ECS云助手调用专用的API工具来实现,关于ECS云助手的安装和使用方法,请参见安装云助手客户端云助手概述
  • 实例或集群的登录类型为密钥对。运维容器仅支持密钥登录,这需要您在创建实例或集群时,选择登录凭证为密钥对。若创建时未选择密钥对登录,可以在实例创建完成后,为实例绑定一对密钥。关于绑定密钥的具体操作,请参见绑定SSH密钥对
  • 安全组已开放22端口,否则无法通过Workbench正常登录。关于开放安全组端口的具体操作,请参见安全组概述

背景信息

运维容器相比于主机,拥有更多的软件包,同时也允许您通过包管理软件YUM安装需要的软件包。在运维容器中,您可以查看系统进程信息、网络信息、系统配置等。此外,运维容器里还提供了专用的命令,用于从容器中进入主机,效果等同于直接通过Workbench来登录实例。

进入主机环境

  1. 登录ECS管理控制台,进入云助手执行命令面板。具体操作,请参见立即执行命令
  2. 在ECS云助手,执行以下命令,启动运维容器。
    lifseacli container start
    通过云助手成功启动运维容器后,预期输出:启动运维容器.png
  3. 执行以下命令,通过指定的私钥登录到容器中。
    ssh -i <ssh-private-key.pem> admin@<instance-ip>

    <ssh-private-key.pem>为您绑定到实例的密钥对中的私钥,<instance-ip>为实例的IP。

    注意 您也可以通过Workbench直接登录,用户名为admin,密钥为您绑定到实例的密钥对中的私钥。请务必保证您的实例开放了22号端口,否则无法通过Workbench正常登录。

    成功登录运维容器的界面如下所示。

    登录运维容器.png

    主机的根文件系统被挂载到运维容器的/.lifsea/rootfs目录(只读挂载),您可以直接在这个目录中检索您需要的系统信息、配置等。

  4. 执行以下命令,进一步进入系统中。
    sudo superman
    进入主机环境,预期输出:进入目录.png
  5. 执行ls命令,查询可使用的系统命令。
    预期输出:进入目录.png

    可以看出在主机环境中,可用的系统命令有限。

其他操作

进入主机环境后,执行exit命令可退出主机环境,再次执行exit命令可退出运维容器。此时,运维容器仍然存在并处于运行状态,您可再次通过SSH登录进去,或者通过命令停止、重启、销毁运维容器。

  • 停止运维容器:
    lifseacli container stop
  • 重启运维容器:
    lifseacli container restart
    说明 若您在启动运维容器之后,重新绑定或解绑了密钥对,则需要重启运维容器,否则绑定或解绑密钥对不会生效。
  • 销毁运维容器:
    lifseacli container rm
    注意 销毁运维容器之后,您此前在容器中安装的软件、保存的文件也会随之一并销毁。若您重新启动一个运维容器,便是一个全新的环境,请尽量不要在运维容器中保存关键数据。
  • 查询运维容器状态:
    lifseacli container status

常见问题

登录出错,提示UNPROTECTED PRIVATE KEY FILE!错误怎么办?

问题现象

报错如下图所示。

FAQ.png

问题原因

私钥文件的权限太大。

解决方案

执行chmod 400 <ssh-private-key.pem>命令,将私钥文件的权限修改为400即可。其中,<ssh-private-key.pem>需要替换为您的私钥文件名。