docker中runc是什麼
在docker中,RunC是一個根據OCI標準建立並運行容器的CLI tool,一個遵循OCI標準的用來運行容器的命令列工具。 runC是docker中最核心的部分,容器的建立、運行、銷毀等等操作最終都會透過呼叫runc完成。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
OCI 定義了容器執行時間標準,runC 是 Docker 依照開放容器格式標準 Open Container Format, OCF 制定的一種具體實作。
該專案從 Docker 的 libcontainer 中遷移來,實現了容器啟動/停止、資源隔離等功能,所以,可以直接透過該工具運行容器。
簡介
所謂容器運行時(Container Runtime) 包含了容器管理和容器鏡像,Open Container Initiative, OCI 是容器運行時的工業標準,包括了:
A) 執行時期標準runtime-spec;
B) 容器映像標準image-spec 。
簡單來說,容器鏡像標準定義了容器鏡像的打包形式,而運行時標準定義瞭如何去運行一個容器。
RunC 是一個根據OCI標準創建並運行容器的CLI tool,是一個遵循 OCI 標準的用來運行容器的命令列工具,它也是一個 Runtime 的實作。
Docker
在舊版本裡,使用需要呼叫docker-runc
,而最新的CE 版本裡,直接修改為了runc
指令。
RunC 作為容器的最底層運作環境,其上層透過 Docker 進行管理。
runC就是docker中最為核心的部分,容器的創建,運行,銷毀等等操作最終都會透過呼叫runc完成。
獨立運行
RunC 作為容器的運行態,不包含鏡像的管理,如果直接使用,需要先準備好鏡像,這裡直接使用已經建置好的 BusyBox 範本。
OCI Bundle
OCI Bundle 是指滿足OCI 標準的一系列文件,這些文件包含了運行容器所需的所有數據,它們存放在一個共同的目錄,該目錄包含以下兩個項目:
-
config.json
包含容器運行的配置資料; - 容器的root filesystem 。
如果主機上安裝了 Docker,那麼可以使用 docker export
指令將已有映像匯出為 OCI Bundle 的格式。
產生 rootfs
直接使用 Docker 中的 BusyBox 範本。
----- 下载最新的版本 $ docker pull busybox ----- 创建rootfs $ mkdir rootfs $ docker export $(docker create busybox) | tar -C rootfs -xvf -
設定檔
#在rootfs
目錄下,包含了常見的二進位文件,除了根目錄之外,還需要一個config.json
設定文件,可以透過runc spec
命令產生設定模板。
詳細的設定可以參考 https://github.com/opencontainers/runtime-spec/blob/master/spec.md
將設定檔中的"terminal": true
修改為false
,否則會在創建的時候會寶cannot allocate tty if runc will detach without setting console socket
報錯。
另外,因為關閉了終端,所以將指令修改為 "args": [ "sleep", "10000" ],
參數。
啟動
----- 创建容器并查看状态 # runc create mybusybox # runc list ----- 启动容器,并查看状态 # runc start mybusybox ----- 删除容器 # runc delete mybusybox
在啟動了之後,可以透過ps aux | grep sleep
看到具體的命令。
常用指令
----- 查看容器状态 # runc state mybusybox ----- 容器内运行进程 # runc ps mybusybox ----- 在容器中执行命令 # runc exec mybusybox ls ----- 停止容器内的任务 # runc kill mybusybox ----- 暂停容器内的所有进程 # runc pause mybusybox ----- 恢复容器内进程的执行 # runc resume mybusybox ----- 获取容器的资源使用情况 # runc events mybusybox
熱遷移
就是將一個容器進行CheckPoint 操作,並取得一系列文件,然後再在其它機器上啟動。
推薦學習:《docker影片教學》
以上是docker中runc是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。

要獲取 Docker 版本,您可以執行以下步驟:運行 Docker 命令“docker --version”來查看客戶端和服務器版本。對於 Mac 或 Windows,還可以通過 Docker Desktop GUI 的“版本”選項卡或“關於 Docker Desktop”菜單查看版本信息。

創建 Docker 鏡像步驟:編寫包含構建指令的 Dockerfile。在終端中構建鏡像,使用 docker build 命令。標記鏡像,使用 docker tag 命令分配名稱和標籤。

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

在 Docker 中保存鏡像,可以使用 docker commit 命令創建新的鏡像,包含指定容器的當前狀態,語法為:docker commit [選項] 容器ID 鏡像名稱。要保存鏡像到倉庫,可以使用 docker push 命令,語法為:docker push 鏡像名稱[:標籤]。要導入已保存的鏡像,可以使用 docker pull 命令,語法為:docker pull 鏡像名稱[:標籤]。

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。
