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

如何在docker run中使用--init参数

燕朝明
2023-03-14
问题内容

--init--init-path选项docker run,但不清楚如何使用。

一开始,我认为它有点像dumb-init,但包含在docker
core中(有点像“ native”)。但是也--init需要--init-path设置关键要求,指向“ docker-
init二进制文件”,并且不知道在何处使用它。Google对“ docker-init”保持沉默。

好的,也许我应该使用’yelp / dumb-init’或’phusion / baseimage-
docker’,但是这些解决方案似乎没有使用docker run‘s --init选项。

所以,我很好奇我应该在哪里把这个“ docker-init二进制文件”设置--init-path为?


问题答案:

在run命令中指定新的docker
–init选项基本上将ENTRYPOINT设置为tini并将CMD传递给它或您在命令行上指定的任何内容。

例如,如果不使用init,则CMD变为pid1。在这种情况下,/ bin / bash

docker run -ti --rm ubuntu:16.04 /bin/bash
root@d740f7360840:/# ps -fA
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  1 03:30 ?        00:00:00 /bin/bash
root        11     1  0 03:30 ?        00:00:00 ps -fA

使用–init,tini(/ dev / init)变为pid 1

html" target="_blank">docker run -ti --init --rm ubuntu:16.04 /bin/bash
root@5b5fe6ee71b5:/# ps -fA
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  1 03:30 ?        00:00:00 /dev/init -- /bin/bash
root         7     1  0 03:30 ?        00:00:00 /bin/bash
root        12     7  0 03:30 ?        00:00:00 ps -fA

tini是一流的初始化过程,可以正确地作为pid 1运行。pid 1进程必须正确地获取分叉的子进程,否则,诸如资源泄漏和僵尸出现之类的坏事情就会发生。

这是您想要的应用程序,这些应用程序分叉并且在编写时没有考虑到孩子的收获,因为通常它们会将其留给init系统。一个经典的例子是Java
Jenkins应用程序。



 类似资料:
  • 问题内容: 我正在通过此方法使用RESTfull Web服务: 在我的Android应用中,我想调用此方法。如何使用org.apache.http.client.methods.HttpPost给参数赋予正确的值; 我注意到我可以使用批注@HeaderParam并将标题添加到HttpPost对象。这是正确的方法吗?这样做: 在httpPost上使用setEntity方法将不起作用。它仅使用json

  • 本文向大家介绍如何在PowerShell中使用ErrorAction参数?,包括了如何在PowerShell中使用ErrorAction参数?的使用技巧和注意事项,需要的朋友参考一下 像ErrorActionPreference变量一样,ErrorAction参数的工作原理类似。高级功能和PowerShell中大多数内置cmdlet均支持ErrorAction参数。将非终止错误转换为终止错误,然后

  • 问题内容: 例如,我有4000行,并且定义了X限制。 找到X行后查询停止?还是查询找到所有行,然后从找到的行中获取X行? 谢谢你。 问题答案: 从MySQL参考手册: 如果您将LIMIT row_count与ORDER BY一起使用,MySQL会在找到排序结果的前row_count行后立即结束排序,而不是对整个结果进行排序。如果通过使用索引进行排序,这将非常快。如果必须完成文件排序,则必须先选择所

  • 我有下面的restcontroller,想用< code>thedate=2016-08-08格式获取-查询控制器。 它应该自动转换为。但是我的 无法正常工作。为什么? 结果: “thedate”:无法将类型[java.lang.String]的属性值转换为属性“thedate”所需的类型[Java . time . local date];嵌套异常为org . spring framework

  • 问题内容: 我正在跟踪Swift和Objective-C Runtime,它适用于常规方法。 我喜欢使用init方法,据我了解,init就像一个类方法。因此,我尝试将初始化作为实例和类方法。但这似乎不起作用 我可以使用Objective C使其工作,只是想知道如何在Swift中使其工作 摘录自我的要旨 问题答案: 为方法创建选择器时,应使用Obj C方法签名作为选择器的基础,因为使用Obj C运行

  • 问题内容: 有人可以给我一些在函数中使用输出参数的示例代码吗?我尝试过使用Google,但只是在功能中发现了它。我想在另一个函数中使用此输出值。 我正在开发的代码打算在Android中运行。 问题答案: Java通过值传递;没有像C#这样的参数。 您可以使用,或更改 作为 参考传递的对象( 按 值)。 代码样例 至于OP需要帮助的代码,以下是使用特殊值(通常用于引用类型)指示成功/失败的典型解决方