通过bash连接到容器时,避免使用docker exec zombie进程

时间:2017-08-30 06:17:01

标签: docker docker-engine

与大多数docker用户一样,我经常需要连接到正在运行的容器并通过bash执行各种任意命令。

我正在使用带有ubuntu 16.04映像的17.06-CE,据我所知,没有在容器中安装ssh的唯一方法是通过docker exec -it <container_name> bash

但是,as is well-documented,对于您生成的每个bash shell进程,在连接中断时会留下僵尸进程。如果你经常连接到你的容器,你最终会得到1000个空闲的shell--这是最不理想的结果!

我怎样才能确保这些僵尸shell进程在断开连接时被终止 - 因为它们将通过ssh?

1 个答案:

答案 0 :(得分:0)

一种方法是确保linux data = open('file.txt') line = data.readline() print(line) 进程在容器中运行。 在docker的最新版本中,有一个init option--init应该执行此操作。这使用tini来运行docker run,也可以在以前的版本中使用。

另一种选择类似于phusion-baseimage项目,它提供了具有此功能的基础泊坞窗图像以及许多其他功能(可能过度杀伤)。