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