如何在docker run中使用

如何在docker run中使用,第1张

如何在docker run中使用

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

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

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

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

docker run -ti --init --rm ubuntu:16.04 /bin/bashroot@5b5fe6ee71b5:/# ps -fAUID        PID  PPID  C STIME TTY          TIME CMDroot         1     0  1 03:30 ?        00:00:00 /dev/init -- /bin/bashroot         7     1  0 03:30 ?        00:00:00 /bin/bashroot        12     7  0 03:30 ?        00:00:00 ps -fA

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

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4886452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-11

发表评论

登录后才能评论

评论列表(0条)

保存