我们可以使用不带源映像(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
您说过:“我们想将基本映像(centos或rhel)与应用程序映像分开,并在运行时将它们链接。 ”实际上FROM rhel
,这要归功于Docker使用的分层文件系统。
也就是说,FROM
图像不会成为图像的一部分,而是保留在单独的图层中。您的新映像指向该rhel
(或其他FROM
'd基本层),然后在运行时将其自身添加到该映像之上。
因此,继续使用FROM
-您将获得想要的行为。
对于那些发现此问题并寻求构建自己的基础映像的方法(因此您不必使用任何基础),可以使用FROM scratch
并且应该阅读有关创建基础映像的信息。
而且,要完全讲究性,Docker之所以需要aFROM
和包括Linux发行版的根文件系统在内的基础,是因为没有根文件系统,就什么也没有。您甚至不能,RUN mkdir /opt/cassandra
因为它mkdir
是根文件系统提供的程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句