我现在尝试在 Kubernetes 集群上运行一个带有 shell (/bin/bash) 的简单容器。
我认为有一种方法可以通过使用pseudo-tty和分离选项(命令-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
坦率地说,保持容器打开是一种技巧,只能用于快速测试和示例。如果您只想要一个容器进行几分钟的测试,我会这样做:
docker run -d debian sleep 300
这样做的好处是,如果您忘记它,容器将自动退出。或者,您可以将这样的东西放在一个while循环中以使其永远运行,或者只运行一个应用程序,例如top. 所有这些在 Kubernetes 中都应该很容易做到。
while
top
真正的问题是你为什么要这样做?您的容器应该提供服务,其进程将使容器在后台运行。