启动容器进程导致 "exec: \"binsh\": stat binsh: no such file or directory"。

问题描述 投票:-1回答:1

我试图从SCRATCH在centos 7上构建一个docker镜像。我已经执行了以下步骤。

FROM scratch
RUN rpm -ivh https://address/app.rpm
RUN YUM install tools 
...
...
CMD ["rpm","start"]

执行后,我试图用命令 "docker build -t testsid -f .dockerfile "来构建这个dockerfile。

现在我看到以下错误。

Sending build context to Docker daemon  3.072kB
Step 1/16 : FROM scratch
 --->
Step 2/16 : RUN rpm -ivh https://address/app.rpm
 ---> Running in d25a0a879d9e
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown

请让我知道是否有人对此有建议。?

任何输入将是非常有用的。

谢谢你。

docker dockerfile containers docker-image docker-command
1个回答
0
投票

FROM scratch 从一个完全空的镜像开始。 容器文件系统中唯一会出现的东西是 /dev, /proc/etc Docker自动提供的。 当你说 rpm,该命令不存在。 一个字符串形式的 RUN 命令会被包裹在 /bin/sh -c ...但没有 /bin 目录。

FROM scratch 是Docker的一种高级用法。 如果你对静态链接的二进制文件以及裸串和JSON数组之间的区别等概念非常熟悉,那么你就可以使用Docker。CMD你可以用它来制作一个极小的图像。 对于大多数典型的用途,你至少要从一些具有某种发行版和包管理器的东西开始。

如果你需要Red Hat的软件包管理工具,最简单的Docker Hub镜像将从以下方面开始 centos:

FROM centos:8 # includes rpm, yum, /bin directory
RUN rpm -ivh https://address/app.rpm
RUN yum install tools
...
© www.soinside.com 2019 - 2024. All rights reserved.