Como modificar a inicialização do serviço do Docker no Ubuntu
Eu tive um problema com a montagem de um volume no meu ubunto e quando isso aconteceu o meu serviço docker subiu com erro porque os dados do Docker estavam nesse volume.
Para isso eu mudei a configuração do Docker para ele esperar a montagem do volume antes de iniciar o serviço. Fui atrás para entender qual a maneira correta de se fazer isso.
A primeira coisa para entender é que o arquivo que é responsável por inicializar o Docker no Ubuntu é o arquivo /lib/systemd/system/docker.service
e ele é gerenciado pelo Docker, por isso não devemos altera-lo.
Para conseguir mudar o comportamento desse arquivo vamos criar o diretório /etc/systemd/system/docker.service.d/
e dentro dele o arquivo mount.conf
e o conteúdo dele será esse:
[Unit]
RequiresMountsFor=/mnt/disk1
Essa configuração vai adicionar ou alterar a configuração RequiresMountsFor
do arquivo /lib/systemd/system/docker.service
usando o valor /mnt/disk1
que é o nome do volume que eu preciso que ele espere estar montado.
Após criar um arquivo personalizado em /etc/systemd/system/docker.service.d/
, você deve recarregar o daemon do systemd para que as alterações tenham efeito usando o comando:
sudo systemctl daemon-reload
Em seguida, você pode reiniciar o serviço do Docker para que as alterações sejam aplicadas usando o comando:
sudo systemctl restart docker
Agora toda vez que o serviço docker for iniciado ele vai verificar se o volume está montando antes.