从头开始构建 docker 图像时遇到“/bin/bash:没有这样的文件”
Met "/bin/bash: no such file" when building docker image from scratch
我正在尝试在 ubuntu-14 系统中创建自己的 docker 图像。
我的 docker 文件如下所示:
FROM scratch
RUN /bin/bash -c 'echo "hello"'
我在 运行 docker build .
:
时收到错误消息
exec: "/bin/sh": stat /bin/sh: no such file or directory
我猜这是因为 /bin/sh
不存在于基本映像 "scratch" 中。我该如何解决这个问题?
基本图像 scratch
不使用 /bin/bash
。所以你应该改为:
FROM ubuntu:14.04
RUN /bin/sh -c 'echo "hello"'
Docker 基本上是一个 containerising 工具,可以帮助构建系统并在瞬间启动它们 运行,而不会占用大量资源与虚拟机相比。
Docker 容器基本上是一个分层容器。 如果您碰巧阅读 Docker 文件,该文件中的每条命令都会导致在容器中创建一个新层,最后一层是执行完 Docker 文件中的所有命令后容器的实际情况。
Dockerhub 上可用的图像专门针对此类环境进行了优化,并且非常易于设置和构建。如果您是从头开始构建容器,即没有任何基础映像,那么您基本上拥有的是一个空容器。一个空容器不理解 /bin/bash 实际上是什么,因此它对你不起作用。
Docker 容器不使用底层 OS 的任何细节。多个 docker 容器将有效地利用相同的底层内核。而已。没有其他的。
( 但是有一个 volumes 的概念,其中容器共享本地底层系统上的特定卷 )
因此,如果您想使用 /bin/bash,您需要一个基础映像,它将为您的容器设置此命令的细节,然后您可以成功执行它。
但是,建议您使用官方 Docker 图像来表示 Ubuntu,然后在其上安装自定义内容。官方图像直接来自制造商,并针对此环境进行了高度优化。
我正在尝试在 ubuntu-14 系统中创建自己的 docker 图像。
我的 docker 文件如下所示:
FROM scratch
RUN /bin/bash -c 'echo "hello"'
我在 运行 docker build .
:
exec: "/bin/sh": stat /bin/sh: no such file or directory
我猜这是因为 /bin/sh
不存在于基本映像 "scratch" 中。我该如何解决这个问题?
基本图像 scratch
不使用 /bin/bash
。所以你应该改为:
FROM ubuntu:14.04
RUN /bin/sh -c 'echo "hello"'
Docker 基本上是一个 containerising 工具,可以帮助构建系统并在瞬间启动它们 运行,而不会占用大量资源与虚拟机相比。
Docker 容器基本上是一个分层容器。 如果您碰巧阅读 Docker 文件,该文件中的每条命令都会导致在容器中创建一个新层,最后一层是执行完 Docker 文件中的所有命令后容器的实际情况。
Dockerhub 上可用的图像专门针对此类环境进行了优化,并且非常易于设置和构建。如果您是从头开始构建容器,即没有任何基础映像,那么您基本上拥有的是一个空容器。一个空容器不理解 /bin/bash 实际上是什么,因此它对你不起作用。
Docker 容器不使用底层 OS 的任何细节。多个 docker 容器将有效地利用相同的底层内核。而已。没有其他的。 ( 但是有一个 volumes 的概念,其中容器共享本地底层系统上的特定卷 )
因此,如果您想使用 /bin/bash,您需要一个基础映像,它将为您的容器设置此命令的细节,然后您可以成功执行它。
但是,建议您使用官方 Docker 图像来表示 Ubuntu,然后在其上安装自定义内容。官方图像直接来自制造商,并针对此环境进行了高度优化。