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
,任何得到 COPY
或 ADD
ed 到图像的东西都表明哈希格式而不是原始文件路径。
您 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"]
由于这是一个基本图像 – 它的构建方式与 debian
、ubuntu
或 alpine
图像相似 – 您可以通过启动它来构建自己的图像 FROM openwrtorg/rootfs:19.07.4
并从那里开始。
我一直在尝试对 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
,任何得到 COPY
或 ADD
ed 到图像的东西都表明哈希格式而不是原始文件路径。
您 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"]
由于这是一个基本图像 – 它的构建方式与 debian
、ubuntu
或 alpine
图像相似 – 您可以通过启动它来构建自己的图像 FROM openwrtorg/rootfs:19.07.4
并从那里开始。