Linux下打包镜像失败报错信息为shim error: docker-runc not installed on system

Linux下打包镜像失败报错信息为shim error: docker-runc not installed on system

作为职场小白,使用ADS流水线打包镜像时,开始的行云流水之后流水线一阵飘红快将我吓尿。打开日志查找问题的根源,看得我一脸懵逼,啥子?master和slave工程的dockerfile都差不多,人家master都打包成功了,你slave竟敢失败,不行不行,你最近一直难为我,老子今天不能惯着你了。今天必须刚到底。

第一步:找度娘

面向百度编程的好处就是能见识学习网上各路大神各种骚操作。按照惯例,在浏览器中www.baidu.com回车,输入遇到的问题。一个个浏览。看了几个解决方案后总结了一下,大致分为两个方案: 1.建立软连接 2.修改daemon文件。

1.建立软连接,网上的解决方案统一为:
ln –s docker-runc-current docker-runc
看的我一脸懵逼,这是啥玩意,建立软连接,也不给说个路径?
我试着找到了个docker文件夹输入指令,执行成功,ok  我去执行一下
docker-runc指令验证下,果然失败了。。。

2.去vim修改deamon.json文件。然后重新启动docker,还是败。。。。

第二步:崩溃

我尼玛,网上的方法试了一遍,你告诉我都不行?我还建立了这么多软连接? 由于是老大刚刚搭好的环境还不敢乱删。完了完了,环境也乱套了,准备辞职信吧红红火火恍恍惚惚哈哈哈。

第三步:佛系

正准备跑路时候,突然想起,虽然都是docker路径,但是在找路径
时好像发现了有几个不同的路径,是不是路径问题导致的?我就继续
在几个常用的路径下找,终于在/usr/libexec/ 文件下找到了一个
docker文件,试着cd进去,发现了有三个子文件:
docker-init-current  
docker-proxy-current 
docker-runc-current
建立软链接 
 ln –s /usr/libexec/docker/docker-runc-current /usr/bin/ docker-runc

终于成功

总结

为什么在usr/bin目录下建立软连接就成功了呢。上网查了一下该路径下的文件的作用:

  1. /bin为binary的简写 一般存放基本命令的二进制文件,主要放置系统的必备执行文件和用户可执行文件。例如cat cp chmod df dmesg gzip kill 这里的docker-runc 应该为用户可执行文件。而usr/bin目录是用户所用的可执行文件。
  2. 而/usr/libexec 目录下存放一些函数库、执行文件及连接文件。

个人认为之前失败的原因是为某个文件夹建立的软连接,而不是可执行文件。

 建立软连接的目的是类似复制文件的方式重命名源文件,
 两个文件都是存在的,并且修改两者中的任何一方都会修
 改另一方。并且软连接后的文件类似于windows系统下的快捷方式。

由于工作关系,不能放截图,所以博客写得比较抽象,建议结合网上其他博客理解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值