為了減少潛在的安全風險,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>
需要替換為您的私密金鑰檔案名稱。