背景介绍
编译制作好的Image导出加载另外的电脑的时候,提示错误如下 :
//导入镜像
docker import example.tar
//启动容器
docker run -it example:v20210119 /bin/bash
//报错信息如下 :
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348:
starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown.
或者 :
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380:
starting container process caused: exec: "/root/Start.sh": stat /root/Start.sh: no such file or directory: unknown
针对该问题的描述,大概Google下,网上大部分有两种派系的解释 :
左派系
- 制作的进行中没有 /bin/bash,尝试/bin/sh,结果问题依旧
右派系
- Linux 与docker版本的兼容性问题。那就卸载旧版本安装最新版试试。
左派系的解决方案很容易验证,反复验证,问题依旧没有解决,俗称旁门左道。
右派系的解决方案有点很难验证,不过直觉告诉我,应该不是这样的问题
果然看到了感觉正确的答案,仔细看看,简短的描述,快速的验证,问题就这样解决了。
Docker运行出现这个错误保存镜像使用的保存方式不同导致的, 如果是使用import导入的镜像,应该注意是:import可以导入save保存的镜像包和export保存的容器包。但是如果导入的是save保存的镜像包,导入时没有错。但是run运行时就会出此错误。 所以可以尝试使用load再次导入镜像。
- 解决方案
docker load < buildroot_v20210119.tar
参考
- Docker - 实现本地镜像的导出、导入(export、import、save、load)
- container_linux.go:345:starting container process caused "exec:
- docker load与docker import