我现在尝试在 Kubernetes 集群上运行一个带有 shell (/bin/bash) 的简单容器。
我认为有一种方法可以通过使用 pseudo-tty
和分离选项( -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 会重复启动它。
有没有办法让容器在 Kubernetes 上运行,例如 docker run
命令中的 -td
选项?
原文由 springwell 发布,翻译遵循 CC BY-SA 4.0 许可协议
容器在其主进程退出时退出。做类似的事情:
坦率地说,保持容器打开是一种技巧,只能用于快速测试和示例。如果您只想要一个容器进行几分钟的测试,我会这样做:
这样做的好处是,如果您忘记它,容器将自动退出。或者,您可以将这样的内容放入
while
循环中以使其永远运行,或者只运行诸如top
类的应用程序。所有这些在 Kubernetes 中都应该很容易做到。真正的问题是你为什么要这样做?您的容器应该提供服务,其进程将使容器在后台运行。