无法从头开始码头集装箱

问题描述:

现在我正在尝试了解Docker,但仍有一些想法不清楚; 我试图运行一个我刚刚创建的图像,这里是目录;无法从头开始码头集装箱

你好(目录):

  • Dockerfile
  • start.sh

而且Dockerfile:

FROM scratch 
ADD start.sh /var/ 
CMD ["/var/start.sh"] 

start.sh:

#!/bin/bash 
echo "hello world" 

我已标记为使用: docker build -t mozer/hello。

一旦我运行命令;

docker run mozer/hello 

no such file or directory 
Error response from daemon: Cannot start container f22019aabc81f29fe17e849a2c040902ccadefe6cb8a8fe2612c83fe8eda40ea: [8] System error: no such file or directory 

,一旦我运行命令:

docker run mozer/hello /bin/sh -c 
exec: "/bin/sh": stat /bin/sh: no such file or directory 
Error response from daemon: Cannot start container 3b54584092e70b639671aca66122a0b1f6b1e4327cb2471a8792c3b2337b0bcc: [8] System error: exec: "/bin/sh": stat /bin/sh: no such file or directory 

能否请您给我一些建议,以找到解决办法?

P.S. :我正在使用未连接到互联网的机器!

FROM scratch是一个完全空白的文件系统。您没有安装的库,并且没有包含在其中的shell(如/ bin/sh)。要使用它作为你的基础,你需要一个静态链接的二进制文件,或者你需要安装linux发行版中包含的所有常规工具。

后者是预先包装在码头集线器上的各种busybox,debian,ubuntu,centos等图像中。使图像以最小基本图像工作的快速方法是将其从FROM busybox更改为/bin/bash并将其更改为/bin/sh

临时图像是一个空文件系统,里面没有/ bin/sh。

Creating a simple base image using scratch

您可以使用多克的保留,最小的图像,防刮花,作为起始 点建设集装箱。使用 的暂存“映像”信号,您希望Dockerfile中的下一个命令的构建过程为 是图像中的第一个文件系统层。

您可以添加一个可执行的编译程序并运行它。