作者:教坏的黑天使_203 | 来源:互联网 | 2023-05-25 14:11
我们可以使用带有源图像(OS)的docker文件来创建docker镜像,即
FROM rhel
我们不希望所有应用程序泊坞窗图像中都有基本图像(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
Andy..
6
您说" 我们希望将基本映像(centos或rhel)与应用程序映像分开并在运行时链接它们. " FROM rhel
由于Docker使用的分层文件系统,这基本上就是这样.
也就是说,FROM
图像不会成为图像的一部分 - 它保留在单独的图层中.您的新图像指向该图像rhel
(或其他FROM
"基础图层"),然后在运行时将其自身添加到其上.
所以继续使用FROM
- 你会得到你想要的行为.
对于那些发现这个问题寻找构建自己的基本图像的方法的人(所以你不必使用任何东西作为基础),你可以使用FROM scratch
,你应该阅读有关创建基本图像的内容.
而且,为了完全迂腐,Docker需要一个FROM
基础包括Linux发行版的根文件系统的原因是没有根文件系统,没有什么.你甚至不能RUN mkdir /opt/cassandra
因为mkdir
是根文件系统提供的程序.
1> Andy..:
您说" 我们希望将基本映像(centos或rhel)与应用程序映像分开并在运行时链接它们. " FROM rhel
由于Docker使用的分层文件系统,这基本上就是这样.
也就是说,FROM
图像不会成为图像的一部分 - 它保留在单独的图层中.您的新图像指向该图像rhel
(或其他FROM
"基础图层"),然后在运行时将其自身添加到其上.
所以继续使用FROM
- 你会得到你想要的行为.
对于那些发现这个问题寻找构建自己的基本图像的方法的人(所以你不必使用任何东西作为基础),你可以使用FROM scratch
,你应该阅读有关创建基本图像的内容.
而且,为了完全迂腐,Docker需要一个FROM
基础包括Linux发行版的根文件系统的原因是没有根文件系统,没有什么.你甚至不能RUN mkdir /opt/cassandra
因为mkdir
是根文件系统提供的程序.