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

docker inspect -f'{{.Parent}}'是获取基本映像ID的安全方法吗?

燕寒
2023-03-14
问题内容

我想在其基础映像更改时自动重建Docker容器。这样做的目的是将当前标记容器的基本映像ID与Docker
Hub中的基本映像ID进行比较,如果不同,则运行新的构建。

获取最新的基本映像ID似乎很简单:

$ docker pull debian:latest >/dev/null 2&>1; docker images debian:latest -q
sha256:a20fd0d59cf13f82535ccdda818d70b97ab043856e37a17029e32fc2252b8c56

docker inspect有一个名为“ Parent”的条目,该条目似乎包含该FROM指令中使用的图像的ID :

$ docker inspect -f '{{.Parent}}' dockertest-1
sha256:a20fd0d59cf13f82535ccdda818d70b97ab043856e37a17029e32fc2252b8c56

由于我真的找不到关于此的任何文档,所以我想知道是否应该依靠此数据来构建构建管道。


问题答案:

父代引用未指向FROMDockerfile行中的基本映像,而是指向映像中的最后一层。如果您的构建仅包含一个图层,则可能是这一FROM行,但是在Dockerfile中添加第二行会破坏您的脚本。

如果您知道基本图片的标签(此类元信息未存储在图片中,那么您需要在外部进行跟踪,也许在图片中添加标签),然后可以搜索docker history当前图片的基本图像当前sha256的图像。我将使用以下参数来生成ID列表:

$ docker history --format '{{ .ID }}' --no-trunc $image_id


 类似资料:
  • 本文向大家介绍F# 基本用法,包括了F# 基本用法的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 要求仅必须允许单个线程执行用户管理(创建/更新/导入)操作,但不允许多个线程同时为同一用户执行用户操作。例如,当线程A正在创建用户A时,必须不允许线程B同时允许线程B导入用户A或创建用户A,但是允许线程B导入用户B。下面的代码线程对于这些要求是否安全? 问题答案: 除了安德鲁·莱金(Andrew Lygin)提到的程序外,您的程序还有另一个错误。 设置为if以前未见过,因为`putIf

  • 本文向大家介绍Shell脚本中获取进程ID的方法,包括了Shell脚本中获取进程ID的方法的使用技巧和注意事项,需要的朋友参考一下 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情

  • 问题内容: 我有一个泊坞窗映像,我想找出它是从哪个映像创建的。当然有多层,但是我想找出最后一张图像(dockerfile中该图像的FROM语句)? 我尝试使用,但无法在其中找到此信息。 我尝试使用以下命令,但它给我一条错误消息 这是我收到的错误消息 问题答案: 您可以使用此答案中建议的方法:https : //stackoverflow.com/a/53841690/3691891 首先,拉: 获

  • 我有两个收藏-租赁和用户。 租赁单据有一个名为“LandlorDid”的字段,类型为引用(而不是字符串)。 现在,在我的Firestore安全规则中,我希望只有当租用的landlordID字段与发出请求的用户的uid(即匹配时,才允许更新租用。 这应该很简单,但get()根本不起作用。Firebase文档,滚动到“Access other Documents”(访问其他文档)对我的情况没有任何帮助

  • 本文向大家介绍java获取各种路径的基本方法,包括了java获取各种路径的基本方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java获取不同路径的方法,供大家参考,具体内容如下 下面赋上代码对应的文件路径 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。