Como já explicado neste comentário por Rob , o docker é ativado por soquete. Isso significa que o daemon não inicia 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, é criar um serviço para seu próprio aplicativo que, por sua vez, exija 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 seja iniciado automaticamente:
$ sudo systemctl enable /etc/systemd/system/myapp.service
$ sudo systemctl start hello.service
O exemplo de caso de uso é atualizar o contêiner para a versão mais recente assim que o serviço iniciar e o exemplo avançado também registra o serviço no etcd. Leia a documentação do CoreOS para obter mais informações.