当前位置: 首页 > 面试题库 >

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

徐经武
2023-03-14
问题内容

我们可以使用没有源映像(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之所以需要a
FROM和包括Linux发行版的根文件系统在内的基础,是因为没有根文件系统,就什么也没有。您甚至不能,RUN mkdir /opt/cassandra因为它mkdir是根文件系统提供的程序。



 类似资料:
  • 问题内容: 将获得多个标签图像。 是否可以通过像ubuntu这样的 Dockerfile 创建多个标签? 在这里,我需要的是不同内容的标签。(具有多个别名标签的内容不同) 问题答案: 您不能使用Dockerfiles创建标签,但是可以通过命令行在映像上创建多个标签。 使用此列表列出您的图片ID: 然后标记:

  • 我有一个GitHub项目(我正在使用它(我没有创建它)),名为OpenRefine,我想将其封装在Docker映像中,这样其他人就可以从“Docker Hub”中提取该Docker映像,并将OpenRefine安装在他们的基本交互Docker实体上,即。形象 然后我想将它上传到一个我可以与其他人共享的存储库。 如果它有一个名字,而不是一个疯狂的散列值,那就好了。 是不是我用命令创建了一个“dock

  • 我想在我的Ubuntu上运行我的 Scrape.py Docker。我的步骤: 我使用 我创建了一个Docker文件: 请问有什么问题?谢谢

  • 问题内容: 假设我有一个docker映像,并将其部署在某些服务器上。但是我不希望其他用户访问该图像。是否有加密docker映像的好方法? 问题答案: 实际上,不,如果用户有权运行docker守护程序,那么他们将有权访问所有图像-这是由于docker要求更高的权限才能运行。 有关为什么这样做的更多信息,请参阅Docker安全指南的摘录。 Docker守护程序攻击面 使用Docker运行容器(和应用程

  • 我正试图用集装箱装一个样品。docker内的js应用程序。 我的docker文件如下,我在项目的工作目录中 我可以成功创建图像 无论如何,当我想运行应用程序时,它并不是一个正在运行的docker镜像 我不知道我哪里做错了? [PS:]根据评论,我已将CMD更改为 但是我不能构建镜像

  • 问题内容: 有什么方法可以手动下载Docker映像吗? 我的互联网连接速度非常慢,对我来说,最好获得图像的链接,然后以更高的互联网速度将其下载到其他位置, 如何获取由docker pull管理的映像的直接URL? 问题答案: 可能会得到,但让我提出另外两种建议! 如果可以通过快速连接连接到远程服务器,并且该服务器可以运行Docker,则可以在该服务器上,然后将映像(及其所有层和元数据)导出为tar