我现在正在尝试在Kubernetes集群上运行带有shell(/ bin / bash)的简单容器。
我以为有一种方法可以通过使用pseudo-ttyand detach选项(命令上的-td选项docker run)来保持容器在Docker容器上运行。
pseudo-tty
-td
docker run
例如,
$ sudo docker run -td ubuntu:latest
Kubernetes中有这样的选择吗?
我试过使用kubectl run-container类似以下的命令来运行容器:
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中很容易做到。
while
top
真正的问题是您为什么要这样做?您的容器应提供服务,其过程将使容器在后台运行。