runc 從入門到放棄

2021-10-09 17:51:02 字數 4759 閱讀 8392

狀態查詢

生命週期

容器操作

容器配置

總結

yum install -y golang
[root@hy runc]# go version

[root@pc-hyman containerd]# docker export c7e726e36d1a -o busybox.tar

tar busybox.tar -c busyboxfs
ociversion:描述容器遵循的oci規範版本

id:描述容器id,用於區分同主機上的容器。對於跨主機的容器,id欄位可以相同

status:容器的生命週期狀態,可以是creating,created,running,stopped,這些狀態在生命週期中定義

pid:容器程序id,在linux平台上,程序id是必選的。它是容器內部執行的應用程式對應程序的id

bundle:容器的bundle目錄,bundle目錄主要存放容器執行時的配置檔案和容器的根檔案系統

annotations欄位是可選的,存放容器的注釋資訊。容器的狀態資訊除以上字段以外,具體的oci相容容器方案還可以定義其它字段,視具體的實現而定。

[root@pc-hyman ~]# runc state 1234

"env": [

"path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",

"term=xterm"

],"mounts": [

]

/ # env

term=xterm

path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

/ # mount |grep pts

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)

prestart:這個hook在start命令之後,使用者定義的程式執行之前呼叫,比如在linux平台上,對於runc執行時方案,prestart hook在容器命令空間之後被執行,這樣hook可以有機會定製即將建立的容器。

createruntime:這個hook需要作為create操作的一部分在執行create操作時被呼叫。它的執行時間介於環境變數配置之後,改變當前所有程序/執行緒工作目錄之前(pivot_root)

createcontainer:同createruntime hook執行階段相同,但必須在它之後。

startcontainer:在使用者定義的程式執行之前執行。

poststart:在使用者定義的程式執行之後之前。

poststop:在容器刪除的核心操作之後,刪除動作返回之前執行。

create

[root@pc-hyman runc]# ls /home/ubuntuvm/containerd/demo/runc

busyboxfs config.json

[root@pc-hyman demo]# pwd

/home/ubuntuvm/containerd/demo

[root@pc-hyman demo]# ls

containerd-1.4.1 main main.go runc tools v1.4.1.zip

[root@pc-hyman demo]# runc create 12345

erro[0000] json specification file config.json not found

[root@pc-hyman demo]# runc create 12345 -b /home/ubuntuvm/containerd/demo/runc

[root@pc-hyman demo]# runc list

id pid status bundle created owner

12345 262814 created /home/ubuntuvm/containerd/demo/runc 2020-09-24t02:23:23.388415943z root

start

kill

delete

"root": ,
"mounts": [,,

....

}

kmp從入門到放棄

標籤 kmp 擴充套件kmp 給你兩個字串,你需要回答,b串是否是a串的子串 a串是否包含b串 a aaaaaaaaaaaaaaaaaaaaaaaaaab b aaaaaaaab 最壞狀態 o mn 一般做法 for 列舉b在a串中的起始位置 for 向後比較ab是否相等 o n m 傳說中的kmp...

beego 從入門到放棄

beego 的專案基本都是通過 bee命令來建立的,所以在建立專案之前確保你已經安裝了 bee 工具和 beego。如果你還沒有安裝,那麼請查閱 beego 的安裝 和 bee 工具的安裝 現在一切就緒我們就可以開始建立專案了,開啟終端,進入 gopath src 所在的目錄 建立乙個專案名為201...

Flutter從入門到放棄

本篇主要記錄下flutter的學習路線。一 認識flutter 可以檢視這些文章 二 dart語言 1 認識dart語言 2 學習 從2018.02開始出現dart2,屬於強型別語言。介紹位址參考 三 開始flutter 網上也有很多部落格介紹了flutter怎麼安裝,但大多介紹不全,第一次安裝難免...