一尘不染

创建不带源映像(OS)的Docker映像

docker

我们可以使用没有源映像(OS)的docker文件创建docker映像吗

FROM rhel

我们不希望在所有应用程序docker映像中使用基本映像(centos或rhel)。我们想要将基本映像(centos或rhel)与应用程序映像分开,并在运行时将它们链接起来。可能吗?

当我 不使用 FROM centos或构建docker映像时rhel,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

阅读 257

收藏
2020-06-17

共1个答案

一尘不染

您说过:“ 我们想将基本映像(centos或rhel)与应用程序映像分开,并在运行时将它们链接。FROM rhel由于Docker使用了分层文件系统,因此本质上就是这样。

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

因此,继续使用FROM-您将获得想要的行为。

对于那些发现此问题并寻求构建自己的基础映像的方法(因此您不必使用任何基础),可以使用FROM scratch并且应该阅读有关创建基础映像的信息

而且,要完全讲究性,Docker之所以需要a
FROM和包括Linux发行版的根文件系统在内的基础,是因为没有根文件系统,就什么也没有。您甚至不能,RUN mkdir /opt/cassandra因为它mkdir是根文件系统提供的程序。

2020-06-17