openwrtorg/rootfs:19.07.4 实际建设情况如何?

How is openwrtorg/rootfs:19.07.4 actually building?

我一直在尝试对 openwrtorg/rootfs:19.07.4 (here) 容器进行一些自定义

编写的Dockerfile为

MAINTAINER Paul Spooren <mail@aparcar.org>
ADD dir:2bf606039dd1f357b8d8655abcc8470848e0165b167803c02a816ae3d5d69f9b in /
EXPOSE 22 443 80
USER root
CMD ["/sbin/init"]

我不明白如何在没有 FROM 命令的情况下创建容器,其次如何将数据添加到容器中

ADD dir:2bf606039dd1f357b8d8655abcc8470848e0165b167803c02a816ae3d5d69f9b in /

这个命令到底在做什么。

Here 是他们 GitHub 存储库的 link。

我检查了你分享的 link,我可以在 Dockerfile that there is indeed a scratch 基础图像中看到正在使用。

另外,命令ADD dir:2bf606039dd1f357b8d8655abcc8470848e0165b167803c02a816ae3d5d69f9b in /

正在使用图像 ID 将图像添加到目录的根目录。

编辑:另外,您不能拉出临时图像。它只能用作基础图像:FROM scratch。这很可能是临时图像的 ID。更多信息 here.

DockerHub 上列出的“Docker文件”不是图像原始 Docker 文件的实际副本;相反,它显示了可以从图像的 docker history 中提取的内容。这意味着基本图像将被展平为一个列表,因此整个事情隐含地开始 FROM scratch,任何得到 COPYADDed 到图像的东西都表明哈希格式而不是原始文件路径。

您 link 访问的 GitHub 存储库有一个 Dockerfile.rootfs 应该看起来更熟悉。我将其复制到此处,并附上一些注释:

# Don't use any base image at all; start from an empty filesystem.
# This is the starting point for anything that unpacks a Linux
# distribution images.  All images eventually come back to this if
# you follow their FROM, and their base image's FROM, and ...
# Not shown in the Docker Hub output.
FROM scratch

MAINTAINER Paul Spooren <mail@aparcar.org>

# Copy the root filesystem into the (completely empty) image.
# The Docker Hub output just shows a hash of what got copied in.
ADD ./ /

# These are identical to the Docker Hub output.
EXPOSE 80 443 22
USER root
CMD ["/sbin/init"]

由于这是一个基本图像 – 它的构建方式与 debianubuntualpine 图像相似 – 您可以通过启动它来构建自己的图像 FROM openwrtorg/rootfs:19.07.4 并从那里开始。