ach*_*ahe 16 docker dockerfile
当我从存储库中获取一个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
Run Code Online (Sandbox Code Playgroud)
然后 :
docker run --rm -it 5d2dc01312f3 bash
Unable to find image '5d2dc01312f3:latest' locally
Run Code Online (Sandbox Code Playgroud)
当我拉出一个我已经构建并发布的图像时,这个问题对我有用,我可以清楚地看到一层有大约1.2go的大小,而且我从我用来构建的机器上复制了一些文件的层.图像和下一层我清理并删除了一些文件,因为我正在清理图像,但图像的总大小约为1.5go,这意味着大脂肪层是1.2go是我只是想看看我是否可以窥视那个脂肪层.
您可以运行Docker图层的中间图像,这可能是您想要的.
在构建过程中,您可能需要在构建过程中的某个点(步骤)检查图像,例如在Docker构建输出中,您将看到:
Step 17/30 : RUN rm -rf /some/directory
---> Running in 5ab963f2b48d
Run Code Online (Sandbox Code Playgroud)
5ab963f2b48d图像ID 在哪里,当您列出图像时,您会在列表中看到该ID,例如
$ docker image ls --all
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 5ab963f2b48d 7 minutes ago 1.18GB
Run Code Online (Sandbox Code Playgroud)
例如,要运行该图像(使用终端),您可以简单地:
docker run -i -t 5ab963f2b48d /bin/bash
Run Code Online (Sandbox Code Playgroud)
另请参阅:将Docker镜像作为容器运行
不,你不能运行一个层。您只能运行一个图像。所以这取决于是否有与该层相关联的中间图像!
下面是一个典型的场景:
docker history <image-id>您在拉取图像时看到的摘要是层的摘要,它们不是中间图像。
输出<missing>图像列中的值docker history表示没有与这些层相关联的图像。因此,没有什么可以真正运行的。
除非镜像是在同一个 docker 主机上构建的(或者Docker 缓存是分布式的),否则 Docker 守护进程将不允许访问这些层。
您可以在解释-docker-image-ids 中阅读有关图层的更多信息。
这么多年了,我回来回答这个问题。要查看中间层,最好和最简单的解决方案是将 docker 映像导出为存档格式,并且每一层都将是 docker 映像的更大 tar 内部的一个 tar 。
我们以tomcat:9.0的 docker 镜像为例 ,将其导出为 tar 格式:
docker save tomcat:9.0 >tomcat-9.0.tar
Run Code Online (Sandbox Code Playgroud)
导出时,里面有很多 Layer ,每一层都归档在自己的 tar 文件中:
tar -tvf tomcat-9.0.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 1fdef6bff31128d5a1a41bdd5fea06be032ef59fd985da09842a252310b4afa3/
-rw-r--r-- 0/0 3 2022-09-02 12:41 1fdef6bff31128d5a1a41bdd5fea06be032ef59fd985da09842a252310b4afa3/VERSION
-rw-r--r-- 0/0 482 2022-09-02 12:41 1fdef6bff31128d5a1a41bdd5fea06be032ef59fd985da09842a252310b4afa3/json
-rw-r--r-- 0/0 20891136 2022-09-02 12:41 1fdef6bff31128d5a1a41bdd5fea06be032ef59fd985da09842a252310b4afa3/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 2ecda9f325b8b38fc5e0a2f1fed4526c517c087e909875abdf1ee4fbcab37b30/
-rw-r--r-- 0/0 3 2022-09-02 12:41 2ecda9f325b8b38fc5e0a2f1fed4526c517c087e909875abdf1ee4fbcab37b30/VERSION
-rw-r--r-- 0/0 482 2022-09-02 12:41 2ecda9f325b8b38fc5e0a2f1fed4526c517c087e909875abdf1ee4fbcab37b30/json
-rw-r--r-- 0/0 329143808 2022-09-02 12:41 2ecda9f325b8b38fc5e0a2f1fed4526c517c087e909875abdf1ee4fbcab37b30/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 2fe9b9ee40730bab9cf86153dd37fbddb4990dd09ba5b9f22e55eeae13063fe8/
-rw-r--r-- 0/0 3 2022-09-02 12:41 2fe9b9ee40730bab9cf86153dd37fbddb4990dd09ba5b9f22e55eeae13063fe8/VERSION
-rw-r--r-- 0/0 406 2022-09-02 12:41 2fe9b9ee40730bab9cf86153dd37fbddb4990dd09ba5b9f22e55eeae13063fe8/json
-rw-r--r-- 0/0 80354304 2022-09-02 12:41 2fe9b9ee40730bab9cf86153dd37fbddb4990dd09ba5b9f22e55eeae13063fe8/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 3fff0862317ff87f1d757557325c158d405afd7fd98f31544ce10cf3ad2bdaa7/
-rw-r--r-- 0/0 3 2022-09-02 12:41 3fff0862317ff87f1d757557325c158d405afd7fd98f31544ce10cf3ad2bdaa7/VERSION
-rw-r--r-- 0/0 482 2022-09-02 12:41 3fff0862317ff87f1d757557325c158d405afd7fd98f31544ce10cf3ad2bdaa7/json
-rw-r--r-- 0/0 3072 2022-09-02 12:41 3fff0862317ff87f1d757557325c158d405afd7fd98f31544ce10cf3ad2bdaa7/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 5cab171b0d1115044b08690329f32a7d99a546777097e935733a837100ef34c5/
-rw-r--r-- 0/0 3 2022-09-02 12:41 5cab171b0d1115044b08690329f32a7d99a546777097e935733a837100ef34c5/VERSION
-rw-r--r-- 0/0 482 2022-09-02 12:41 5cab171b0d1115044b08690329f32a7d99a546777097e935733a837100ef34c5/json
-rw-r--r-- 0/0 3072 2022-09-02 12:41 5cab171b0d1115044b08690329f32a7d99a546777097e935733a837100ef34c5/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 6b87b21c947802c9f53a614692b4369cc2d7aa951f64bf28cd1f8713e191894e/
-rw-r--r-- 0/0 3 2022-09-02 12:41 6b87b21c947802c9f53a614692b4369cc2d7aa951f64bf28cd1f8713e191894e/VERSION
-rw-r--r-- 0/0 482 2022-09-02 12:41 6b87b21c947802c9f53a614692b4369cc2d7aa951f64bf28cd1f8713e191894e/json
-rw-r--r-- 0/0 50671616 2022-09-02 12:41 6b87b21c947802c9f53a614692b4369cc2d7aa951f64bf28cd1f8713e191894e/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 12:41 895adbb30677e7148af6d01e295347bd6ddc7cd5d929ee8fc3d03aedac5fa857/
-rw-r--r-- 0/0 3 2022-09-02 12:41 895adbb30677e7148af6d01e295347bd6ddc7cd5d929ee8fc3d03aedac5fa857/VERSION
-rw-r--r-- 0/0 2588 2022-09-02 12:41 895adbb30677e7148af6d01e295347bd6ddc7cd5d929ee8fc3d03aedac5fa857/json
-rw-r--r-- 0/0 2048 2022-09-02 12:41 895adbb30677e7148af6d01e295347bd6ddc7cd5d929ee8fc3d03aedac5fa857/layer.tar
-rw-r--r-- 0/0 12431 2022-09-02 12:41 d4488b7f8c9b73c0f2e91f5e37990905ae3d34d55ea893b5e70b76fc7a2db1b7.json
-rw-r--r-- 0/0 661 1970-01-01 01:00 manifest.json
-rw-r--r-- 0/0 86 1970-01-01 01:00 repositories
Run Code Online (Sandbox Code Playgroud)
要查看和窥视每一层的内容,现在剩下的就是解压tomcat tar,而不是解压目标层的tar。
tar -xvf tomcat-9.0.tar
tar -tvf 6b87b21c947802c9f53a614692b4369cc2d7aa951f64bf28cd1f8713e191894e/layer.tar
drwxr-xr-x 0/0 0 2022-09-02 07:24 etc/
drwxr-xr-x 0/0 0 2022-09-02 07:24 etc/ca-certificates/
-rwxr-xr-x 0/0 0 1970-01-01 01:00 etc/ca-certificates/.wh..wh..opq
drwxr-xr-x 0/0 0 2021-10-16 18:09 etc/ca-certificates/update.d/
-rw-r--r-- 0/0 5529 2022-09-02 07:24 etc/ca-certificates.conf
drwxr-xr-x 0/0 0 2022-09-02 07:24 etc/default/
-rw-r--r-- 0/0 35 2022-09-02 07:24 etc/default/locale
drwxr-xr-x 0/0 0 2022-09-02 07:24 etc/fonts/
-rwxr-xr-x 0/0 0 1970-01-01 01:00 etc/fonts/.wh..wh..opq
drwxr-xr-x 0/0 0 2022-09-02 07:24 etc/fonts/conf.avail/
[...]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4120 次 |
| 最近记录: |