我目前正在使用第三方 Docker 映像,其 Dockerfile 基于空映像,从指令开始FROM scratch。
如何在这样的映像上安装 Bash?我尝试向 Dockerfile 添加一些额外的命令,但显然该RUN指令本身需要 Bash。
当你启动 Docker 镜像时,FROM scratch你什么也得不到。通常,使用其中一种方法是在主机上构建静态二进制文件(或者现在在早期的 Dockerfile 构建阶段),然后将COPY其构建到映像中。
FROM scratch
COPY mybinary /
ENTRYPOINT ["/mybinary"]
Run Code Online (Sandbox Code Playgroud)
没有什么可以阻止您创建派生映像并向COPY其中添加其他二进制文件。您必须专门构建静态二进制文件或安装完整的动态库环境。
如果您这样做是为了尝试调试容器,则图像中可能没有其他内容。这意味着您可以使用 shell 执行的一系列操作非常无聊。另一个是您不会拥有您习惯的标准工具集(没有 anls或 a cp)。如果您可以不用 bash 的各种扩展,那么BusyBox是一个小工具,设计用于在有限的环境中静态构建和安装,它提供了大多数标准工具的最小版本。
| 归档时间: |
|
| 查看次数: |
14012 次 |
| 最近记录: |