RunC 是一個輕量級的工具,它是用來運行容器的,只用來作這一件事,而且這一件事要作好。咱們能夠認爲它就是個命令行小工具,能夠不用經過 docker 引擎,直接運行容器。事實上,runC 是標準化的產物,它根據 OCI 標準來建立和運行容器。而 OCI(Open Container Initiative)組織,旨在圍繞容器格式和運行時制定一個開放的工業化標準。 docker
使用runc的話也是比較簡單的。首先咱們要基於現有已運行的docker容器來製做runc須要的rootfs,具體以下shell
須要機器上安裝有dockerjson
# 首先創建一個工做目錄以及rootfs目錄 mkdir testc cd testc mkdir rootfs # 運行一個容器並根據本身的須要在容器中定製一些內容 docker run --name=test1 --rm -it centos bash # 容器運行後可根據本身須要定製安裝一些內容,好比說這裏安裝一個ansible yum install ansible -y ... # 定製話內容完成後 此窗口不要關閉,重新開一個shell窗口執行以下命令 # 將上述運行的容器導出爲文件並解壓 cd testc/rootfs docker export test1 -o test1.tar tar xvf test1.tar rm -rf test1.tar # 生成runc啓動須要的配置文件 cd .. runc spec # 上面那條命令會生成一個config.json 的文件,裏面的參數能夠根據須要修改 這裏只簡單的修改幾個 vim config.json ... "args": [ "bash" # 容器啓動的命令 ], ... "readonly": false # 修改成容器的文件系統爲rw模式,默認是隻讀的 ... # end
# 啓動咱們製做好的容器 cd testc runc run testname # 如上的testname是啓動容器的名稱 隨便定義 # 列出runc運行的因此容器,就能看到咱們上面運行的testname的容器信息了 runc list # runc的其餘命令 runc help
實際上咱們能夠利用此製做一些工具包,能夠運行在任何地方,很方便,好比說咱們的應用須要部署到客戶的機器上,咱們就能夠製做一個ansible的鏡像而後在裏面寫好ansible的角色等配置,而後在導出最後根據上述步驟製做好並打成壓縮包.拿到客戶現場的服務器中解壓並執行你的ansible-playbook 稍做休息客戶的環境裝好了。其餘應用場景本身想把vim