Docker你好Wold – oci运行时错误

我想了解Docker,并且在我的OSX上的~/dockerfiles/test上有一个非常简单的Dockerfile

 FROM scratch RUN echo "Hello world" > ~/helloworld.txt CMD ["cat", "~/helloworld.txt"] 

当我尝试为这个文件build立一个图像

 docker build -t simple . 

在构build过程中出现错误。

错误输出

 Sending build context to Docker daemon 2.048 kB Step 1 : FROM scratch ---> Step 2 : RUN echo "Hello world" > ~/helloworld.txt ---> Running in fc772fd39d45 oci runtime error: exec: "/bin/sh": stat /bin/sh: no such file or directory 

任何指针为什么我面临这个问题?

您从SCRATCH (空白图像)开始,您正在使用cat ,而不是内置的shell 。

cat需要运行/bin/sh (它将fork进程并加载dynamic库)


注意:默认情况下, ENTRYPOINT/bin/sh -c ,但是文档“ 使用scratch创build一个简单的基础镜像 ”显示临时镜像的ENTRYPOINT为空。

正如下面的 BMitch所评论的:

这个问题的快速解决scheme正在从诸如FROM debian:latest ,甚至FROM busybox:latest如果大小的问题

目前使用的图像是高山

 FROM alpine:3.4 

该映像只有5 MB,可以访问比其他基于BusyBox的映像更完整的软件包存储库。