Vejo que o Docker adicionou algo chamado políticas de reinicialização para lidar com a reinicialização de contêineres em caso de, por exemplo, reiniciar.
Embora isso seja muito útil, vejo que o comando restart policy apenas funciona com docker run
e não docker start
. Então, minha pergunta é:
Existe alguma maneira de adicionar políticas de reinicialização a um contêiner que já foi criado no passado?
Respostas:
Nas versões recentes do docker (a partir de 1.11), você tem um
update
comando:fonte
docker update --restart always <container>
docs.docker.com/engine/admin/start-containers-automaticallydocker update
aceita vários IDs de contêiner, portanto, não é necessárioxargs
, basta fazê-lodocker update --restart=always $(docker ps -q)
.Existem duas abordagens para modificar o RestartPolicy:
docker commit
seu contêiner como uma nova imagem, pare e mova o contêiner atual e inicie um novo contêiner com a imagem.fonte
docker update
permite modificar a política de reinicialização apenas em 1.11+O uso da
--restart=always
política manipulará a reinicialização de contêineres existentes em caso de reinicialização.O problema é que, se há vários recipientes com
--restart=always
quando você executa imagem de uma versão mais recente como discutido na janela de encaixe - como você desabilitar o reinício automático em um recipiente? .Portanto, neste caso, é melhor escolher outra opção: - reinicie a política a menos que seja interrompida .
Esta política não conflitantes a
docker run --rm
, mas como explicado na documentação janela de encaixe :Portanto, ao usar esta
--restart unless-stopped
política, para garantir que a reinicialização esteja funcionando, caso pare por acidente ao fechar o terminal, faça uma vez em outro terminal, como abaixo:Aguarde até que o processo de extermínio termine no shell anterior, feche-o e saia ( não saia ).
E verifique novamente no terminal restante se o contêiner ainda estiver em execução:
Se ainda estiver em execução, você poderá reiniciar com segurança e verificar novamente se o aplicativo está sendo reiniciado e se a janela de encaixe está limpa sem o uso de vários contêineres.
fonte