【云駐共創】像使用 Docker 一樣使用 iSulad 管理容器
什么是 iSulad
iSulad 是一個輕量級的容器運行守護程序,它是為物聯網和云計算基礎設施而設計的。iSulad 具有輕便、快速、不受硬件規格和架構限制的特點,可以更廣泛地應用。iSula /'i.zu.la/,其原意是一種非常強大的螞蟻,學術上稱為“子彈蟻”,因為被它咬一口,猶如被子彈打到那般疼痛。iSula 是世界上強大的昆蟲之一。華為容器技術方案品牌因其“小個頭、大能量”的含義而取名。
iSulad 只是 iSula 其中的一個組件,iSulad 中總共包含了三個組件:
iSulad:提供容器的全生命周期管理,北向兼容 Kubernetes 的 CRI 接口,南向兼容 OCI 生態,本次將會介紹的容器引擎。
isula-build:容器鏡像構建工具,提供快速構建容器鏡像的能力。
isula-transform:容器遷移工具,提供 Docker 容器冷遷移至 iSulad 的能力。
用戶可通過調用子系統提供的 GRPC API 與 iSulad 進行交互,有 Docker 的使用經驗,和對比進行學習。
image service : 這個有點像 Docker 提供的 image 服務。鏡像管理服務,提供鏡像相關操作,如鏡像下載、查詢、刪除等。
execution service: 這個類似 Docker 容器相關的服務。容器生命周期管理服務,提供容器的相關操作,如容器創建、啟動、刪除等。
network:其實和 Docker 的 network 功能很相似。網絡子模塊負責 CRI 的 Pod 的網絡管理能力。當 Pod 啟動時,通過 CNI 的接口把該 Pod 加入到配置文件制定的網絡平面中;當 Pod 停止時,通過 CNI 的接口把該 Pod 從所在的網絡平面中退出,并且清理相關的網絡資源。
安裝配置 iSulad
下面演示的操作都是在 openEuler 操作系統之上,我會假設各位同學已經配置好了 openEuler 的環境,下面開始安裝 iSulad 服務。
執行以下命令安裝 iSulad:
yum install -y iSulad
執行以下命令,將 iSulad 的原始配置文件進行備份:
cp /etc/isulad/daemon.json /etc/isulad/daemon.json.origin
打開 iSulad 的配置文件,修改容器鏡像倉庫的配置參數,在 registry-mirrors 中填入 hub.oepkgs.net,執行指令如下:
如果對 vim 的還不熟悉,可以參考以下步驟,首先,按照下面的命令打開文件,然后輸入鍵盤的 i,通過鍵盤將光標移到 registry-mirrors 中輸入 "hub.oepkgs.net",確認已經正確輸入,最后,按鍵盤右上角的 esc,再按 shitf+:,再輸入 wq 進行退出并保存的操作。
vim /etc/isulad/daemon.json
為了能夠用更加友好的方式查看 json 文件內容,安裝 json 格式化工具 jq:
yum install -y jq
在輸出中觀測到 Complete 輸出,就表明已經安裝成功。接下來使用 json 格式化工具查看配置的是否被更改:
cat /etc/isulad/daemon.json | jq
通過查看上圖的輸出,再次確認registry-mirrors 中已經有剛剛添加的 "hub.oepkgs.net",,需要重啟 iSulad 服務,執行命令如下:
systemctl restart isulad
檢查 iSulad 是否重啟完成,可以通過執行以下命令查看 iSulad 服務啟動狀態,查看完畢按 q 即可退出j。
systemctl status isulad
使用 iSula 運行容器
下面使用 iSula 創建容器 openeuler:20.09,當第一次創建容器時,由于本地沒有鏡像,所以 iSula 會自動從倉庫拉取對應的鏡像。其實 iSula create 命令和 docker run 命令是一樣的。執行命令如下:
isula create -it openeuler/openeuler:20.09
現在查看一下是否有正在運行的容器,這里也和 docker 中的使用方式沒什么差異,執行如下命令:
isula ps
如上圖所示,由于該容器已經沒有在運行,因此查看的結果為空。
這時候就需要使用查看所有容器的命令,執行如下:
isula ps -a
通過上面的截圖,看到了剛剛創建的容器,需要將容器 ID 或者容器的名字記錄下來,這時候我們可以通過容器的 ID 或則名字再次運行這個容器,進而獲取容器內部信息,啟動一個停止容器的命令如下:
isula start a0887671e86e
現在我們來查看一個正在運行容器的信息,這里同樣需要容器的 ID,執行如下命令,查看結果:
isula exec a0887671e86e cat /etc/os-release
當然,我們也可以使用通過如下命令,直接運行容器輸出結果,如果細心的話,可以發現,這兩次的輸出結果其實是完全一樣的。
isula run openeuler/openeuler:20.09 cat /etc/os-release
有些時候,為了快速定位問題或者校驗配置,可能需要進入容器內部,想要嘗試進入容器,只要在 run 命令的基礎上添加 -it 參數,就可以進入容器中的交互式終端,在容器中進行操作,命令如下:
isula run -it openeuler/openeuler:20.09
如上圖所示,我們已經登錄到容器里面,藍色光標前面的主機名已經發生了變化,已經由 root@ecs-isula 變成了 root@localhost 。
iSula 停止及清理
使用 isula 可以運行容器,運行的容器還可以被暫停、停止、移除。
首先,我們還是要查看運行中的容器列表,得到容器的 ID,才能執行針對容器的相關命令,查看執行命令如下:
isula ps -a
暫停容器進程,命令示例如下:
isula pause b1f9511cb087
如上圖所示,容器的狀態已經由 Up 變為 Paused,恢復容器進程也是類似的操作,命令如下:
isula unpause b1f9511cb087
通過上圖發現容器的狀態又恢復為正常的運行狀態。
如果不及時清理容器,也會到占用一定的空間,所以還是要及時清理不再使用的容器。刪除容器需要先將其停止,停止容器執行命令如下:
此前運行中的容器已經不在正在運行的劉表中,現在就可以將其刪除,執行如下命令:
isula rm b1f9511cb087
上圖中可以發現,執行刪除之后,返回容器了 ID,這就表明容器被正確刪除,通過查詢所有容器列表,被刪除的容器也不在列表中。
刪除鏡像前需要將容器全部刪除,執行指令如下:
isula rm -f $(isula ps -aq)
如上圖所示,通過 ps 命令查看所有容器,已經沒有任何返回值,此時容器列表為空,所有容器都已刪除。
清理完容器后可刪除鏡像,執行如下命令查看鏡像:
根據獲取鏡像的結果可以得到 REPOSITORY 和 TAG 列,執行刪除鏡像命令如下:
總結
iSula 是 openEuler 社區開源的容器引擎,iSula 相比 Docker 是一種新的容器解決方案,具有輕、靈、巧、快的特點,不受硬件規格和架構的限制,底噪開銷更小,可應用領域更為廣泛。通過上述簡單的入門之后,其實能感受到,和 Docker 操作鏡像和容器的操作無大差別,所以對于悉 Docker 的同學,使用起來學習成本也很低。
本文整理自華為云社區內容共創活動【內容共創系列】1024,懂你所需,予你溫暖,致敬新時代可愛的程序員們,查看活動詳情 華為云社區內容共創者招募。
Docker openEuler
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。