使用runc来启动容器

runc简介

​ 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

相关文章
相关标签/搜索