How to modify the Docker service initialization on Ubuntu
I had a problem with a disk mount in my Ubuntu. When it happens, my docker service starts with an error. The error is why my docker data is on this disk.
To fix this, I changed the docker service configuration to wait for a disk mount before starting. I learned the correct way to do this correctly.
First, you must understand that the fire responsible for initializing the docker service in Ubuntu is /lib/systemd/system/docker.service
, and it's managed by Docker, so we must not change this.
To change the behavior of the service, we need to create a directory /etc/systemd/system/docker.service.d/
and inside, then create a file mount.conf
:
[Unit]
RequiresMountsFor=/mnt/disk1
This configuration will add or change the RequiresMountsFor configuration of the file /lib/systemd/system/docker.service
using the value /mnt/disk1
, which is the disk name I need to wait to be mounted before docker start.
After creating the file in /etc/systemd/system/docker.service.d/
, you must reload the systemd daemon for the changes to take effect using the command:
sudo systemctl daemon-reload
After that, you can restart the docker service to apply the changes with the command:
sudo systemctl restart docker
Every time the docker service is initialized, it will verify if a disk has been mounted before.
March 08, 2023
Background image credits forGabriel Heinzer