Ik heb het zelf opgelost dmv het aanmaken van een fstab file in de configuratie. Dit was uiteindelijk veel simpeler dan de eventuele .mount optie.
De rest van de post laat ik staan voor het archief.
--------
Ik zal beginnen met een korte situatie schets:
Op mijn Synology thuis NAS (DS415+) gebruik ik diverse docker containers om verschillende programma's te draaien.
Helaas update Synology nooit het kernel van de NAS systemen, hierdoor komt ik nu af en toe de situatie terecht dat ik een docker container niet meer kan updaten of draaien omdat het gebruikte kernel te oud is.
Als oplossing hiervoor heb ik bedacht dat ik een VM kan draaien op mijn Synology in Virtual Machine Manager. Na wat onderzoek heb ik Fedora CoreOS (FCOS) gekozen als OS voor de VM omdat deze licht en heel veilig lijkt te zijn en goed werkt met docker. Bijkomend voordeel is dat ik eventueel in de toekomst de VM naar een eventueel ander systeem kan overzetten zonder alles opnieuw te installeren.
Op mijn Synology heb ik diverse shared folders die ik dmv NFS mounts wil kunnen benaderen in FCOS om deze in docker containers te kunnen gebruiken. Voor het voorbeeld gebruik ik maar één mount voor de uitleg van het probleem:
Ik probeer de NFS mount: DS415:/volume3/docker te gebruiken icm de interne folder /mnt/docker
Mijn linux ervaring is beperkt dus als ik ergens hele stomme dingen zit te doen, laat het mij weten want daar kan ik alleen maar van leren.
Mijn vraag
Na de installatie van de VM heb ik docker werkend met portainer. Maar ik krijg de volgende foutmeldingen voor mijn mount
nfsstat geeft: Error: No Client Stats (/proc/net/rpc/nfs: No such file or directory).
Als ik de volgende code uitvoer in de shell dan werkt de mount wel. Maar dit is niet persistent en ook niet volgens de best practices van FCOS.
Wat ik al gevonden of geprobeerd heb
Voorbeeld van hoe zou moeten werken
De technische achtergrond van de .mount unit
Ik hoop dat iemand mij de goede kant kan opsturen! Waarvoor dank

code:
1
2
3
4
5
| - path: /etc/fstab mode: 0644 contents: inline: | DS415:/volume3/docker /mnt/docker nfs defaults |
De rest van de post laat ik staan voor het archief.
--------
Ik zal beginnen met een korte situatie schets:
Op mijn Synology thuis NAS (DS415+) gebruik ik diverse docker containers om verschillende programma's te draaien.
Helaas update Synology nooit het kernel van de NAS systemen, hierdoor komt ik nu af en toe de situatie terecht dat ik een docker container niet meer kan updaten of draaien omdat het gebruikte kernel te oud is.
Als oplossing hiervoor heb ik bedacht dat ik een VM kan draaien op mijn Synology in Virtual Machine Manager. Na wat onderzoek heb ik Fedora CoreOS (FCOS) gekozen als OS voor de VM omdat deze licht en heel veilig lijkt te zijn en goed werkt met docker. Bijkomend voordeel is dat ik eventueel in de toekomst de VM naar een eventueel ander systeem kan overzetten zonder alles opnieuw te installeren.
Op mijn Synology heb ik diverse shared folders die ik dmv NFS mounts wil kunnen benaderen in FCOS om deze in docker containers te kunnen gebruiken. Voor het voorbeeld gebruik ik maar één mount voor de uitleg van het probleem:
Ik probeer de NFS mount: DS415:/volume3/docker te gebruiken icm de interne folder /mnt/docker
Mijn linux ervaring is beperkt dus als ik ergens hele stomme dingen zit te doen, laat het mij weten want daar kan ik alleen maar van leren.
Mijn vraag
Na de installatie van de VM heb ik docker werkend met portainer. Maar ik krijg de volgende foutmeldingen voor mijn mount
In de logs heb kom ik het volgende tegen:[systemd]
Failed Units: 2
mnt-docker.automount
mnt-docker.mount
Dit is mijn FCOS butane config:Jul 14 16:06:50 FCOS systemd[1]: mnt-docker.mount: Mount path /mnt/docker is not canonical (contains a symlink).
Jul 14 16:06:50 FCOS systemd[1]: mnt-docker.mount: Failed to run 'mount' task: Too many levels of symbolic links
Jul 14 16:06:50 FCOS systemd[1]: mnt-docker.mount: Failed with result 'resources'.
Jul 14 16:06:50 FCOS systemd[1]: Failed to mount /mnt/docker directory.
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
| variant: fcos version: 1.3.0 passwd: users: - name: core ssh_authorized_keys: - ssh-rsa AAA...Yrv rsa-key groups: - docker storage: directories: - path: /mnt/docker files: - path: /etc/profile.d/systemd-pager.sh mode: 0644 contents: inline: | # Tell systemd to not use a pager when printing information export SYSTEMD_PAGER=cat - path: /etc/sysctl.d/20-silence-audit.conf mode: 0644 contents: inline: | # Raise console message logging level from DEBUG (7) to WARNING (4) # to hide audit messages from the interactive console kernel.printk=4 - path: /etc/hostname mode: 0644 contents: inline: | FCOS - path: /etc/profile.d/nano.sh overwrite: true contents: inline: | #/bin/sh export EDITOR=nano systemd: units: - name: mnt-docker.mount enabled: true contents: | [Unit] Description= /mnt/docker directory Requires=network-online.target After=network-online.target [Mount] What=DS415:/volume3/docker Where=/mnt/docker Type=nfs [Install] WantedBy=multi-user.target - name: mnt-docker.automount enabled: true contents: | [Unit] Description=Automount /mnt/docker [Automount] TimeoutIdleSec=20min Where=/mnt/docker [Install] WantedBy=multi-user.target - name: docker.portainer.service enabled: true contents: |- [Unit] Description=Portainer Admin Container After=docker.service Requires=docker.service network.target network-online.target [Service] Type=oneshot RemainAfterExit=yes TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker stop %n ExecStartPre=-/usr/bin/docker rm %n ExecStartPre=/usr/bin/docker pull portainer/portainer-ce:latest ExecStart=-/usr/bin/mkdir -p /mnt/shared_nfs/portainer_data # Privileged mode is required for binding to local socket to work due to SELINUX (https://github.com/portainer/portainer/issues/849) ExecStart=/usr/bin/docker run --privileged=true -d -p 9000:9000 --name %n --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /var/portainer_data:/data portainer/portainer-ce ExecStop=/usr/bin/docker stop -t 15 %n [Install] WantedBy=multi-user.target - name: rpm-ostree-install-nano.service enabled: true contents: | [Unit] Description=Layer nano with rpm-ostree # We run after `systemd-machine-id-commit.service` to ensure that # `ConditionFirstBoot=true` services won't rerun on the next boot. After=systemd-machine-id-commit.service After=network-online.target ConditionPathExists=!/var/lib/rpm-ostree-install-nano.stamp [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/rpm-ostree install --allow-inactive nano ExecStart=/bin/touch /var/lib/rpm-ostree-install-nano.stamp ExecStart=/bin/systemctl --no-block reboot [Install] WantedBy=multi-user.target |
nfsstat geeft: Error: No Client Stats (/proc/net/rpc/nfs: No such file or directory).
Als ik de volgende code uitvoer in de shell dan werkt de mount wel. Maar dit is niet persistent en ook niet volgens de best practices van FCOS.
code:
1
| sudo mount -t nfs DS415:/volume3/docker /mnt/docker |
Wat ik al gevonden of geprobeerd heb
Voorbeeld van hoe zou moeten werken
De technische achtergrond van de .mount unit
Ik hoop dat iemand mij de goede kant kan opsturen! Waarvoor dank
[ Voor 12% gewijzigd door DMP.cc op 14-07-2021 22:02 . Reden: logs ]