O daemon do Docker não inicia na inicialização no CoreOS

19

Eu tenho uma instalação simples do CoreOS (835.9.0) e ele não inicia o daemon do docker na inicialização. Ele só começa quando eu SSH e faço, por exemplo, docker ps .

Como posso fazer o daemon do docker iniciar automaticamente na inicialização do sistema?

Quando eu digo o daemon do docker, quero dizer ps -ef | grep docker não mostra nenhum processo até eu fazer docker ps

    
por Chris 15.12.2015 / 08:56

3 respostas

31

sudo systemctl enable docker fez o truque.

    
por 15.12.2015 / 10:25
3

Isso já é um pouco antigo, mas comecei a usar o cloud-init para fazer isso em todos os novos servidores. Eu tenho um script de inicialização em nuvem que eu uso para todos os meus servidores. Parte dele contém:

#cloud-config
coreos:
  units:
    - name: "docker.service"
      command: "start"
      enable: true

Isso ativará o serviço de encaixe e o iniciará primeiro e em cada inicialização.

    
por 29.09.2017 / 16:38
1

Como já foi explicado em este comentário por Rob , o docker é ativado por soquete. Isso significa que o deamon não começa a menos que seja chamado. As respostas existentes aqui funcionam, mas o CoreOS recomenda uma abordagem diferente.

A maneira recomendada de fazer isso, de acordo com a documentação do CoreOS , é para criar um serviço para seu próprio aplicativo que, por sua vez, requer o serviço Docker:

/etc/systemd/system/myapp.service:

[Unit]
Description=MyApp
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill busybox1
ExecStartPre=-/usr/bin/docker rm busybox1
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name busybox1 busybox /bin/sh -c "trap 'exit 0' INT TERM; while true; do echo Hello World; sleep 1; done"

[Install]
WantedBy=multi-user.target

E faça com que esse serviço inicie automaticamente:

$ sudo systemctl enable /etc/systemd/system/myapp.service
$ sudo systemctl start hello.service

O exemplo de caso de uso é para atualizar o contêiner para a versão mais recente assim que o serviço for iniciado e o exemplo avançado também registrar o serviço no etcd. Leia a documentação do CoreOS para obter mais informações básicas.

    
por 11.11.2018 / 12:41