I'm now trying to run a simple container with shell (/bin/bash) on a Kubernetes cluster.
I thought that there was a way to keep a container running on a Docker container by using pseudo-tty
and detach option (-td
option on docker run
command).
For example,
$ sudo docker run -td ubuntu:latest
Is there an option like this in Kubernetes?
I've tried running a container by using a kubectl run-container
command like:
kubectl run-container test_container ubuntu:latest --replicas=1
But the container exits for a few seconds (just like launching with the docker run
command without options I mentioned above). And ReplicationController launches it again repeatedly.
Is there a way to keep a container running on Kubernetes like the -td
options in the docker run
command?
A container exits when its main process exits. Doing something like:
docker run -itd debian
to hold the container open is frankly a hack that should only be used for quick tests and examples. If you just want a container for testing for a few minutes, I would do:
docker run -d debian sleep 300
Which has the advantage that the container will automatically exit if you forget about it. Alternatively, you could put something like this in a while
loop to keep it running forever, or just run an application such as top
. All of these should be easy to do in Kubernetes.
The real question is why would you want to do this? Your container should be providing a service, whose process will keep the container running in the background.