当我从存储库中获取一个docker图像时,看到它带有一些带有一些ID的图层但是当我尝试使用 docker run 运行它时,它告诉我它可以'找到它。
我的问题是这样的,我可以运行一个docker图像的某一层,我可以通过 docker history< image_id> ,就像古生物学家挖掘寻找有趣的东西一样?
我做了什么:
docker pull ruby
Using default tag: latest
latest: Pulling from library/ruby
693502eb7dfb: Already exists
081cd4bfd521: Already exists
5d2dc01312f3: Already exists
54a5f7da9a4f: Pulling fs layer
168cf3f33330: Pulling fs layer
021d84fef638: Pulling fs layer
168c3c107cd1: Waiting
f001b782a027: Waiting
然后:
docker run --rm -it 5d2dc01312f3 bash
Unable to find image '5d2dc01312f3:latest' locally
当我拉出我已经构建并发布的图像时,问题向我推出,我可以清楚地看到一层有大约1.2go的大小,它是我从我使用的机器复制一些文件的层建立图像,在下一层我清理和删除了一些文件,因为我正在清理图像,但图像的总大小约为1.5go,这意味着大胖子层是1.2go是我想要的看看我是否可以窥视那个脂肪层。
答案 0 :(得分:8)
您可以运行Docker层的中间 image ,这可能是您想要的。
在构建过程中,您可能需要在构建过程中的特定点(步骤)检查图像,例如在Docker构建输出中,您将看到:
Step 17/30 : RUN rm -rf /some/directory
---> Running in 5ab963f2b48d
5ab963f2b48d
是图片ID,并且当您列出图片时,您会在列表中看到该ID,例如
$ docker image ls --all
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 5ab963f2b48d 7 minutes ago 1.18GB
例如,要运行该图像(使用终端),您可以简单地:
docker run -i -t 5ab963f2b48d /bin/bash
答案 1 :(得分:1)
是的,这是可能的,但是如果你使用docker&gt; = 1.10只能使用自建图像。例如除了最顶层之外,<?php
$test=mysql_query("SELECT * FROM newsites");
$deneme=mysql_fetch_row($test);
?>
<div class='container'>
<div class='row'>
<?php
while ($deneme=mysql_fetch_assoc($test)) {
extract($deneme);
echo '<div class="col-md-3 col-sm-6 col-xs-12 back-colour">';
echo '<td><img class="img-responsive" src="images/'.$deneme['site_pic'].'" width="120" height="20"/></td>';
echo '<p class="box-design">'.$deneme['site_name'].'</p>';
echo '<p class="box-design">'.$deneme['site_link'].'</p>';
echo '<p class="box-design">'.$deneme['site_ref'].'</p>';
echo '<p class="box-design">'.$deneme['site_type'].'</p>';
echo '</div>';
}
?>
</div>
</div>
将输出docker history ruby
,因为它们没有标记。如果您自己构建它们,它们将有一个标记,您可以像平常一样启动它们
答案 2 :(得分:1)
不,你不能运行图层,只能运行图像。所以这取决于是否有与该图层关联的中间图像!
以下是典型情况:
docker history <image-id>
拉动图像时看到的摘要是图层的摘要,它们不是中间图像。
<missing>
输出的图像列中的值docker history
表示没有与这些图层关联的图像,因此无法真正运行。
docker守护程序不允许访问这些图层,除非图像是在同一个docker主机上构建的(或docker cache was distributed)
了解有关图层的更多信息