使用runc来启动容器

本秂侑毒 提交于 2020-03-22 23:44:16

runc简介

​ RunC 是一个轻量级的工具,它是用来运行容器的,只用来做这一件事,并且这一件事要做好。我们可以认为它就是个命令行小工具,可以不用通过 docker 引擎,直接运行容器。事实上,runC 是标准化的产物,它根据 OCI 标准来创建和运行容器。而 OCI(Open Container Initiative)组织,旨在围绕容器格式和运行时制定一个开放的工业化标准。

如何使用

​ 使用runc的话也是比较简单的。首先我们要基于现有已运行的docker容器来制作runc需要的rootfs,具体如下

需要机器上安装有docker

# 首先建立一个工作目录以及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 稍作休息客户的环境装好了。其他应用场景自己想把

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!