我们可以使用没有源映像(OS)的docker文件创建docker映像吗
FROM rhel
我们不希望在所有应用程序docker映像中使用基本映像(centos或rhel)。我们想要将基本映像(centos或rhel)与应用程序映像分开,并在运行时将它们链接起来。可能吗?
当我 不使用 FROM centos或构建docker映像时rhel,docker抱怨:“提交前提供源映像”
FROM centos
rhel
我的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-您将获得想要的行为。
对于那些发现此问题并寻求构建自己的基础映像的方法(因此您不必使用任何基础),可以使用FROM scratch并且应该阅读有关创建基础映像的信息。
FROM scratch
而且,要完全讲究性,Docker之所以需要a FROM和包括Linux发行版的根文件系统在内的基础,是因为没有根文件系统,就什么也没有。您甚至不能,RUN mkdir /opt/cassandra因为它mkdir是根文件系统提供的程序。
RUN mkdir /opt/cassandra
mkdir