為了減少潛在的安全風險,ContainerOS原則上不支持任何用戶直接登錄到系統進行一系列可能無法追溯的操作,也不提供SSH登錄功能。若您仍然有登錄實例進行運維操作的需求,ContainerOS提供了專用的運維容器以滿足您問題排查、軟件包安裝等非日常的運維需求。本文介紹ContainerOS支持的常見運維容器操作,包括登錄、啟動、停止、重啟、狀態查詢等。
相較于主機環境,運維容器擁有更多的軟件包,也支持通過包管理軟件YUM安裝需要的軟件包。在運維容器中,您可以查看系統進程信息、網絡信息、系統配置等。此外,運維容器里還提供了專用的命令,用于從容器中進入主機,效果等同于直接通過Workbench來登錄實例。
前提條件
實例或集群的登錄類型為密鑰對。運維容器僅支持密鑰登錄,這需要您在創建實例或集群時,選擇登錄憑證為密鑰對。若創建時未選擇密鑰對登錄,可以在實例創建完成后,為實例綁定一對密鑰。關于綁定密鑰的具體操作,請參見綁定SSH密鑰對。
已安裝ECS云助手客戶端。管理運維容器需要通過ECS云助手調用專用的API工具來實現,關于ECS云助手的安裝和使用方法,請參見安裝云助手Agent和云助手概述。
安全組已開放22端口,否則無法通過Workbench正常登錄。關于開放安全組端口的具體操作,請參見安全組概述。
使用免密登錄模式進行ECS實例操作。
進入主機環境
在ECS云助手,執行以下命令,啟動運維容器。
sudo lifseacli container start
預期輸出:
預期輸出表明,通過云助手成功啟動了運維容器。
執行以下命令,在支持SSH命令的終端中,通過指定的私鑰登錄到運維容器。
說明將
<ssh-private-key.pem>
替換為您綁定到實例的密鑰對中的私鑰;<instance-ip>
替換為實例IP。您也可以使用admin通過Workbench直接登錄,密鑰為您綁定到實例的密鑰對中的私鑰。請確保您的實例已開放22端口。
ssh -i <ssh-private-key.pem> admin@<instance-ip>
成功登錄運維容器的界面如下所示。主機的根文件系統已被掛載到運維容器的
/.lifsea/rootfs
目錄(只讀掛載),供您查找所需的系統信息、配置等。執行以下命令,從運維容器登錄到主機環境中。
sudo superman
執行
ls
命令,查詢可使用的系統命令。預期輸出:
在主機環境中,可用的系統命令有限。
其他操作
進入主機環境后,執行exit
命令可退出主機環境,再次執行exit
命令可退出運維容器。此時,運維容器仍然存在并處于運行狀態,您可再次通過SSH登入,或者通過命令停止、重啟、銷毀運維容器。
停止運維容器
sudo lifseacli container stop
重啟運維容器
若您在啟動運維容器之后,重新綁定或解綁了密鑰對,則需要重啟運維容器,否則綁定或解綁密鑰對無法生效。
sudo lifseacli container restart
銷毀運維容器
sudo lifseacli container rm
銷毀運維容器之后,您此前在容器中安裝的軟件、保存的文件也會隨之一并銷毀。若您重新啟動一個運維容器,便是一個全新的環境,請盡量不要在運維容器中保存關鍵數據。
查詢運維容器狀態
sudo lifseacli container status
常見問題
登錄出錯,提示UNPROTECTED PRIVATE KEY FILE!
錯誤怎么辦?
問題現象
報錯如下圖所示。
問題原因
私鑰文件的權限太大。
解決方案
執行chmod 400 <ssh-private-key.pem>
命令,將私鑰文件的權限修改為400。其中,<ssh-private-key.pem>
需要替換為您的私鑰文件名。