1、RunC 是什么?
RunC 是一个轻量级的工具,它是用来运行容器的,只用来做这一件事,并且这一件事要做好。
我们可以认为它就是个命令行小工具,可以不用通过 docker 引擎,直接运行容器。
事实上,runC 是标准化的产物,它根据 OCI 标准来创建和运行容器。
而 OCI(Open Container Initiative)组织,旨在围绕容器格式和运行时制定一个开放的工业化标准
2、安装 runC
RunC 是用 golang 创建的项目,因此编译它之前需要在本地安装 golang 的开发环境。
Golang 的安装请参考《打造 golang 开发环境》一文,这里不再赘述。
2.1、安装安全计算模型 libseccomp
RunC 默认的编译配置是支持 seccomp 的,所以我们需要先安装libseccomp,
如果是centos系统的话,就安装 libseccomp-devel:
yum install -y libseccomp-devel
如果是ubuntu系统,就安装libseccomp-dev:
sudo apt install libseccomp-dev
seccomp 的全称为 secure computing mode,即安全计算模型,这是 Linux 内核提供的功能。我们可以通过它来限制容器中进程的行为。关于 seccomp 的更多内容,请参考 Seccomp security profiles for Docker
2.2 安装runc需要go环境才可以安装
wget https://studygolang.com/dl/golang/go1.16.linux-amd64.tar.gz 下载地址: https://download.csdn.net/download/weixin_45623111/19350105
tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
需要的可以添加: mkdir -p /home/go/src /home/go/pkg /home/go/bin
vi /etc/profile export GOROOT=/usr/local/go export GOPATH=/home/gopath export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 配置生效: source /etc/profile
检查go是否配置成功
go env
2.3、获取 runC 的代码
https://github.com/opencontainers/runc/tags cd /usr/local/runc-1.0.0-rc95/ make && make install
3、升级完毕
[root@localhost app]# runc -v runc version 1.0.0-rc95 spec: 1.0.2-dev go: go1.16.4 libseccomp: 2.3.1



