Posso ativar a reinicialização automática com --restart=always
, mas depois que paro o contêiner, como desativo esse atributo?
Normalmente, eu executo um servidor da web e normalmente mapeio a porta 80:
docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash
Mas há momentos em que desejo executar uma versão mais recente da minha imagem, mas quero manter o contêiner antigo por perto. O problema é que, se houver vários contêineres --restart=always
, apenas um deles (aleatório?) É iniciado porque todos estão disputando a porta 80 no host.
docker update --restart=no $(docker ps -a -q)
para atualizar todos os seus recipientes :-)Você pode iniciar seu contêiner com
--restart=unless-stopped
.fonte
Use o abaixo para desativar TODOS os contêineres de reinicialização automática (daemon).
Use o seguinte para desativar a reinicialização de um contêiner SINGLE.
Racional :
O Docker fornece políticas de reinicialização para controlar se seus contêineres são iniciados automaticamente quando eles saem ou quando o Docker é reiniciado. Isso geralmente é muito útil quando o Docker está executando um serviço importante.
Notas
Se você estiver usando o docker-compose, talvez seja útil saber disso.
fonte
Se você tiver um enxame reiniciando os contêineres, o enxame reiniciará todos os contêineres que você parar ou confirmar, independentemente da opção de reinicialização. Isso é um recurso, não um bug.
Verifique se você não está executando um serviço que esqueceu:
Então, você pode parar o serviço
fonte
ls
resulta em erroError response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.