blueFast
blueFast

Reputation: 44331

Stop a failing container with restart=always

I would like to stop a container which is failing to restart (it is in status Restarting). The container has restart=always. Doing:

docker stop <container>

seems to succeed (no error message), but the container is restarted anyway. The same command actually stops containers with restart=always which have restarted normally.

If I try to kill the container:

docker kill <container>

I get a message: container is not running (which is true)

Removing the container works:

docker rm <container>

The container will not restart, since it does not exist anymore. But this is not what I wanted: I only wanted for it to stop restarting.

How can I stop a failing, restarting container, without removing it?

Upvotes: 5

Views: 3641

Answers (2)

tgogos
tgogos

Reputation: 25122

You can first change the restart policy with docker container update:

docker container update --restart="no" <your container name>

and then continue with:

docker container stop <your container name>

Restart policies (--restart):

  • no: Do not automatically restart the container when it exits. This is the default.
  • on-failure[:max-retries]: Restart only if the container exits with a non-zero exit status. Optionally, limit the number of restart retries the Docker daemon attempts.
  • always: Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container.
  • unless-stopped: Always restart the container regardless of the exit status, including on daemon startup, except if the container was put into a stopped state before the Docker daemon was stopped.

Upvotes: 4

Melle
Melle

Reputation: 8357

You could take a look into docker pause. Please see it's documentation here

Upvotes: 1

Related Questions