docker, systemd and nfs walked into a bar...

So I recently had some power issues and realized that things were not starting up in the correct order. I'm sure most people have figured this out, but I wanted to put it here for my own well being.

First, make sure that your fstab file is correct for your nfs mounts.

x.x.x.x:/mnt/thunder/audio /mnt/nas/audio nfs rw,intr,nfsvers=3,x-systemd.automount 0 0
x.x.x.x:/mnt/thunder/video /mnt/nas/video nfs rw,intr,nfsvers=3,x-systemd.automount 0 0
x.x.x.x:/mnt/rain/docker   /docker        nfs rw,intr,nfsvers=3,x-systemd.automount 0 0 

Then we need to make sure things start up in the right order. For docker, I added...

vim /etc/systemd/system/multi-user.target.wants/docker.service

[Unit]
... snip ...
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service docker.mount mnt-nas-audio.mount mnt-nas-video.mount

... snip ...

To find what your mount names are, you can run the following command.

systemctl list-units | grep /mnt

This should make it where the fstab mounts will mount automatically, and then the docker service (or any service you wish) will only start after the successful nfs mount.

No comments:

Post a Comment