2016 - 2024

感恩一路有你

docker镜像的文件都存在哪里 云计算中什么用来保存镜像?

浏览量:2637 时间:2023-04-07 10:43:21 作者:采采

云计算中什么用来保存镜像?

Registry)Docker仓库是用来存储图像的,可以理解为代码控制中的代码仓库。Docker Hub提供了大量镜像供使用。

Docker仓库是用来存放图片的,可以理解为代码控制中的代码仓库。提供了大量可供使用的镜子。

Dock

Docker镜像和容器的区别详解?

当您希望一个容器做两件事,或者让一个Docker映像包含来自两个不同映像的依赖库时,您需要知道每个映像的Dockerfile。本文介绍了如何通过dockerhistory命令对Docker图片进行逆向工程,获取它们的Docker文件,组织成一个Docker文件并进行构建,从而实现你想要做的事情。

常言道, "唐 不要多此一举! "

使用Docker时,在建立自己的镜像之前,最好先在DockerHub中找一些可以直接使用的镜像进行练习。将软件架构分布到一系列容器中是非常有效的,每个容器只做一件事。构建分布式应用程序的最佳基础是使用DockerHub的官方图像,因为它们的质量是可信的。

在某些情况下,您可能希望一个容器做两件不同的事情。在其他情况下,您可能希望Docker映像包含来自两个不同映像的依赖库。如果每个图像都有一个docker文件,这就非常简单了。将它们组织到Dockerfile文件中并构建它们。

但是大部分时候都是使用DockerHub上准备的图片,不会有它们的源Dockerfile。我花时间找到了一个工具,可以合并(或展平)两个不同的Docker图像,而不需要它们的Docker文件。也就是说,寻找可以做到以下几点的东西:

图1 -

- gtmerged_image_12

/

图2 -

之前在GitHub上有两个相关的讨论(1和2),虽然都是关闭的。

这可能吗?

那么,有没有一个工具可以做到这一点:docker merge image 2 image2 merged _ image?

不要!

你可以 甚至不能用下面的方法构建Dockerfile:

来自图像1

来自图像2

简而言之,你可以 不要在一个Dockerfile文件中有多个基本镜像。比如。

但是我需要这个功能!

唯一的解决方案是获取这些图像的docker文件,然后将它们组织成一个文件并构建它们。那么,我能在DockerHub上得到一个镜像Dockerfile吗?幸运的是,你可以。它可以 不可离线获取(原文在线,但显然在线时可以直接从GitHub获取),但可以使用dockerhistory命令通过逆向工程获取。

怎么用?

使用dockerpull从您机器上的DockerHub下载图像。

dockerpullimage1

dockerpullimage2

然后使用dockerhistory获取构建两个容器时运行的命令。

docker history-no-trunctrueimaggtimage 1-docker file

docker history-no-trunctruegimage 2g timage 2-docker file

接下来,打开这两个文件,您可以看到每个图像的命令堆栈。这是因为Docker图像是由层构建的(阅读更多)。也就是说,您在Dockerfile中键入的每个命令都会构建一个新的映像,该映像位于前一个命令生成的映像之上。所以你可以对镜像进行逆向工程。

限制

唯一的情况是你可以 对映像进行反向工程是指映像的维护者在docker文件中使用ADD或COPY命令。您将看到这样一行:

addfil: 1 AC 56373 f 7983 caf 22

或者add dir : cf 6 Fe 659 e 9d 21535844。

这是因为我不 我不知道维护人员在自己的机器上使用了什么本地文件,包括图像。

图像 文件 镜像 Docker 命令

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。