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

如何在Kubernetes上保持容器运行?

童宏富
2023-03-14
问题内容

我现在正在尝试在Kubernetes集群上运行带有shell(/ bin / bash)的简单容器。

我以为有一种方法可以通过使用pseudo-ttyand detach选项(命令上的-td选项docker run)来保持容器在Docker容器上运行。

例如,

$ sudo docker run -td ubuntu:latest

Kubernetes中有这样的选择吗?

我试过使用kubectl run-container类似以下的命令来运行容器:

kubectl run-container test_container ubuntu:latest --replicas=1

但是容器会退出几秒钟(就像使用docker run不带我上面提到的选项的命令启动一样)。然后ReplicationController再次重复启动它。

有没有办法像命令中的-td选项那样保持容器在Kubernetes上运行docker run


问题答案:

容器在其主进程退出时退出。做类似的事情:

docker run -itd debian

坦率地说,将容器保持打开状态是一种hack,只能用于快速测试和示例。如果您只想要一个容器进行几分钟的测试,我会这样做:

docker run -d debian sleep 300

这样做的好处是,如果您忘记了它,容器将自动退出。另外,您可以将类似这样的内容放入while循环中以使其永久运行,或者只运行诸如之类的应用程序top。所有这些都应该在Kubernetes中很容易做到。

真正的问题是您为什么要这样做?您的容器应提供服务,其过程将使容器在后台运行。



 类似资料:
  • 我现在尝试在Kubernetes集群上运行一个带有shell(/bin/bash)的简单容器。 我认为有一种方法可以通过使用和detach选项(命令上的选项)来保持容器在Docker容器上运行。 但是容器会退出几秒钟(就像使用命令启动一样,没有上面提到的选项)。并且ReplicationController重复地再次启动它。 是否有一种方法可以像命令中的选项一样,使容器在Kubernetes上运行

  • 我见过一堆教程,它们似乎做了与我想做的相同的事情,但由于某种原因,我的Docker容器退出了。基本上,我在Docker容器中设置了一个Web服务器和几个守护进程。我通过一个名为的bash脚本来完成这一过程的最后部分,该脚本通过DockerFile中的CMD运行。如下所示: 我在Dockerfile中启动它,如下所示: 我可以看到,当我手动运行事情时(即使用-i-t/bin/bash进入映像),所有

  • 问题内容: 我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。 我试图在docker-compose.yml中添加“ command:[“ sleep”,“ 60”]“和其他内容,但是每当我添加带有” command:…“的行时,我都无法调用” docker-compose up“因为我将收到

  • 我想用docker-compose启动一个服务,并保持容器运行,这样我就可以通过'dockerinspect'获得它的IP地址。但是,容器总是在启动后立即退出。 我试图在docker-compose.yml中添加“command:[”sleep“,”60“]”和其他内容,但每当我添加带有“command:...”的行时。我不能调用“docker-compose up”,因为我将得到消息“无法启动容

  • 问题内容: 我看过很多教程似乎都在做我想做的事情,但是由于某种原因,我的Docker容器退出了。基本上,我正在Docker容器内设置一个Web服务器和一些守护程序。我通过bash脚本(在Dockerfile中通过CMD运行)完成了最后部分。看起来像这样: 然后在Dockerfile中启动它,如下所示: 我可以看到,当我手动运行事物时(即使用-i -t / bin / bash进入映像),所有服务都

  • 我最近设置了一个Laravel队列系统。最基本的是cronjob调用一个命令将作业添加到队列中,并调用第二个命令发送电子邮件。 当我通过ssh连接到服务器并运行php artisan queue:listen时,系统会工作,但如果我关闭终端,侦听器就会关闭,作业会堆积起来并在队列中等待,直到我通过ssh重新连接并再次运行listen。 保持队列系统在后台运行而不需要通过ssh保持连接打开的最佳方法