运行容器其实不需要Docker镜像
WOT全球技术创新大会2022,门票6折抢购中!购票立减2320元!
这个有点标题党的意思,但确实是事实:容器的镜像只是组织rootfs,如果我们提前准备好rootfs,那么就不需要容器的镜像。
下面我们通过一个实战演示一下,如何直接通过runc启动容器。
- $ mkdir my_container && cd my_container
- $ runc spec
通过spec命令便可以生成一个config.json文件。文件的内容大概是下面这样的
- {
- "ociVersion": "1.0.1-dev",
- "process": {
- "terminal": true,
- "user": {
- "uid": 0,
- "gid": 0
- },
- "args": [
- "sh"
- ],
- "cwd": "/",
- "env": [ ... ],
- "capabilities": { ... },
- "rlimits": [ ... ]
- },
- "root": {
- "path": "rootfs",
- "readonly": true
- },
- "hostname": "runc",
- "mounts": [ ... ],
- "linux": {
- "namespaces": [
- { "type": "pid" },
- { "type": "network" },
- { "type": "ipc" },
- { "type": "uts" },
- { "type": "mount" }
- ]
- }
- }
里面就是标准的RUNC格式,主要是定义了启动命令、env、rootfs、主机名、mount挂载、namespace等。
然后我们创建一个rootfs目录
- $ mkdir rootfs
然后我们写一个打印主机名的Go程序,编译后并拷贝到rootfs里面。
- $ cat <<EOF > main.go
- package main
- import "fmt"
- import "os"
- func main() {
- fmt.Println(os.Hostname())
- }
- EOF
- $ GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o printme
- $ mv printme rootfs/
然后启动容器
- $ sudo runc create mycont1
- $ sudo runc start mycont1
便可以直接输出”runc“(因为上面spec定义的hostname就是runc)。
所以对应容器来说,只是需要一个rootfs,其实这个rootfs是怎么生成的,它其实并不关心。至于是不是用overlay 制作的更是无从感知。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
年度开源项目评选进行中,最受欢迎基础软件又是它?
评选活动设置「最受欢迎项目」,以及两个特别策划的「神秘奖项」,本页面用于投票选出「最受欢迎项目」; 参与投票的候选项目被划分到「组织」或「个人」通道,最终选出 TOP 30 项目(组织:21 个,个人:9 个) 详细规则点此查看; 候选开源项目均由国人发起,评审委员会筛选出本页面的候选项目; 提名、修改项目信息等相关问题请私信 @OSCHINA编辑部。
- 下一篇
拒绝华为后,欧美5G发展苦不堪言,网友:自食恶果
WOT全球技术创新大会2022,门票6折抢购中!购票立减2320元! 早前为了抵制华为5G设备,美国以设备存在安全问题为由诋毁抹黑华为,不仅自己禁用华为5G设备,还煽风点火蛊惑它的一群小老弟也参与到禁用华为的行列中。在美国的“努力”下,华为失去了欧洲市场。虽然华为损失惨重,但是美国和它小老弟们也不好受,弃用华为设备之后,它们要承担更高的5G建设成本。这些平白多出的建设费用让欧洲各国运营商可以说是苦不堪言,在近期它们开始反抗,将矛头指向了美国。 根据近期的消息,包括德国电信、英国沃达丰等在内的11家欧洲大型电信企业联合发表声明称,由于5G建设成本太高,花费巨大,而美国在欧洲的大型科技公司使用了大量5G流量,从中获得很大利益,因此美国的科技巨头企业必须支付一定的资金用于对它们的建设补贴。 被美国坑惨了的欧洲各大运营商 欧洲各大运营商因为老美这个搅屎棍的捣乱,导致无法使用华为设备,只能改而使用爱立信和诺基亚这些和老美穿一条裤子的通信设备。但是它们的设备不仅质量没华为好,价格上也没华为低,十足的高价低配,购买设备上就要多支出不少钱。 同时按照规定使用哪家公司设备就不需要额外向对应公司缴纳其所持...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7设置SWAP分区,小内存服务器的救世主