gpt4 book ai didi

docker - 创建没有源镜像 (OS) 的 docker 镜像

转载 作者:行者123 更新时间:2023-12-03 23:56:13 25 4
gpt4 key购买 nike

我们可以使用没有源图像 (OS) 的 docker 文件创建 docker 图像,即

FROM rhel

我们不希望在我们所有的应用程序 docker 镜像中使用基础镜像(centos 或 rhel)。我们希望将基本镜像(centos 或 rhel)和应用程序镜像分开,并在运行时链接它们。是否可以?

当我构建 docker 镜像时 没有 FROM centosrhel , docker 提示:“提交前提供源图像”

我的 docker 文件如下所示:
MAINTAINER abc

RUN mkdir /opt/cassandra

RUN cd /opt/cassandra

RUN wget http://www.interior-dsgn.com/apache/cassandra/2.1.2/apache-cassandra-2.1.2-bin.tar.gz

RUN tar xvzf apache-cassandra-2.1.2-bin.tar.gz

RUN cd apache-cassandra-2.1.2-bin

最佳答案

您说“我们希望将基本镜像(centos 或 rhel)和应用程序镜像分开并在运行时链接它们。”这基本上就是FROM rhel确实如此,这要归功于 Docker 使用的分层文件系统。

也就是说,FROM图像不会成为图像的一部分——它保留在一个单独的层中。您的新图片指向那个 rhel (或其他 FROM 'd 基础层),然后在运行时将自身添加到它之上。

所以继续使用 FROM - 你会得到你想要的行为。

对于那些发现这个问题正在寻找一种方法来构建自己的基础镜像(因此您不必使用任何东西作为基础)的人,您可以使用 FROM scratch你应该阅读 Creating a base image .

而且,完全迂腐,Docker 需要 FROM 的原因而一个包含Linux发行版根文件系统的基础是,没有根文件系统,就什么都没有。你甚至不能RUN mkdir /opt/cassandra因为 mkdir是根文件系统提供的程序。

关于docker - 创建没有源镜像 (OS) 的 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28100576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com