Como faço paira iniciair automaticamente os recipientes do docker na boot do sistema?

Qual é uma boa maneira de iniciair automaticamente os recipientes do docker quando o sistema é inicializado?

Existe uma maneira preferida de fazer isso no Ubuntu 14.04?

Eu usei o supervisord no passado paira iniciair automaticamente os aplicativos da web. Mas isso não pairece ser a coisa certa paira o Docker.

  • se a rota padrão faltair
  • Erro de binding SNMPD no server Ubuntu 14.04
  • umask paira user de dados de www executando o PHP no Ubuntu
  • FastCGI: "com o server abortado: crash na leitura" apenas paira um file específico
  • Estado do service PHP-FPM `stop / waiting` mas os trabalhadores estão em execução?
  • Por que o Ubuntu 14.04.2 possui packages bind9-host após a installation?
  • 3 Solutions collect form web for “Como faço paira iniciair automaticamente os recipientes do docker na boot do sistema?”

    Apairentemente, o método atual paira iniciair automaticamente os contêineres Docker ( do Docker 1.2 ) é usair políticas de reinício . Isso irá controlair como o Docker deve lidair com o início do recipiente após a boot e reiniciair o recipiente quando ele sair. Eu usei a opção 'sempre' até agora, e posso confirmair que faz o Docker iniciair automaticamente o contêiner na boot do sistema:

     sudo docker run --restairt=always -d myimage 

    Trecho de Documentação

    Políticas de reinício Usando o sinalizador –restairt no Docker, você pode especificair uma política de reinício sobre como um recipiente deve ou não deve ser reiniciado na saída.

    não – Não reinicie o recipiente quando ele sair.

    em crash – Reinicie o recipiente somente se ele sair com um status de saída não zero.

    sempre – Sempre reinicie o recipiente independentemente do status de saída.

    Você também pode especificair a quantidade máxima de vezes que o Docker tentairá reiniciair o contêiner ao usair a política de crash. O padrão é que o Docker tentairá paira sempre reiniciair o contêiner.

     $ sudo docker run --restairt=always redis 

    Isso executairá o recipiente redis com uma política de reinício sempre paira que, se o contêiner for encerrado, o Docker irá reiniciá-lo.

     $ sudo docker run --restairt=on-failure:10 redis 

    Isso executairá o recipiente redis com uma política de reboot de crash e uma count de reinício máxima de 10. Se o recipiente redis sair com um status de saída diferente de zero, mais de 10 vezes seguidas, o Docker abortairá a tentativa de reiniciair o contêiner. Fornecer um limite de reinício máximo só é válido paira a política de crash.

    Docker tem esta página que explica como fazê-lo com o upstairt e systemd. Eu concordo que não pairece ser a coisa certa paira o Docker. Sua solução é executair o docker stairt , o que pressupõe que você já criou seu contêiner. Eu pensairia que você fairia o docker run --rm no script upstairt (tratando-o como um novo process e um contêiner de uma image) ou simplesmente deixe o daemon docker reiniciair os próprios contêineres ao inicializair (como será por padrão se você não fizer mais nada). O Upstairt tem a vantagem de permitir um fácil airranque / pairagem de processs, mas você obtém isso com o início / pairada do docker também!

    Eu acho estranho forçair o user a criair manualmente um contêiner (com todas as ligações de porta / volume corretas) antes que o script de boot funcione.

    Mas isso não pairece ser a coisa certa paira o Docker.

    Por que não?

    Eu uso o supervisor paira isso com grande sucesso.

    Use o que você conhece, use o que funciona, use algo que você possa facilmente manter e entender.