Moin,
Weil ich mich bisher nicht unbedingt mit der Sicherheit von Docker innerhalb von OMV Gedanken gemacht habe (chmod 777 -c -R ...) will ich das nun richtig machen.
Später will ich einzelne Container per Wireguard und danach ggf. mittels fixe Ip vom ISP von aussen erreichbar machen.
Dafür habe ich mir nun ein Raspberry als Testumgebung angelegt.
Ziel:
- 1 User + Gruppe für die Docker
- Container laufen innerhalb Standardmässig unter User 0 = Root. Das soll nicht so sein. = Separater User z.B. User "dev".
- Die einzelnen Volumes sollen (wie in OMV im Raid5) auf einem USB-Stick gespeichert werden als Raid5-Ersatz resp. als Festplatte.
1. Raspberry OS installieren
2. Docker holen/installieren:
curl -fsSL https://get.Docker.com -o get-Docker.sh
sudo sh get-Docker.sh
3. neuen User erstellen für Docker
adduser dev
4. user in Dockergruppe hinzufügen
sudo usermod -aG docker dev
5. Überprüfen ob nun in dockergruppe
cat /etc/group | grep docker
==> docker:x:992:dev
...also passt.
Testen ob das Erstellen und Ausführen von Container nun klappt mit User "dev":
docker run hello-world
==> also läuft.
Nun will ich noch Portainer installieren.
Also Volume erstellen:
docker volume create portainer_data
Nun Portainer pullen/run und als Volume portainer_data als Speicherort auswählen:
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
wird vermutlich aus Sicherheitsgründen direkt im Docker-Verzeichnis unter "portainer_data" gespeichert/abgelegt, weil man da nur mit Rootrechte hinkommt & es ja alles für die Verwaltung von allen Images/Containern gedacht ist.
Aber im prinzip ist es ein Container wie alle anderen...
Wenn ich nun den USB-Stick (für alle weiteren Daten der Container) mounte ist der unter dem "SD-Card-Imager von Raspberry" erstellten Standarduser:
pi@docker:~ $ id
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),102(input),105(render),106(netdev),115(lpadmin),993(gpio),994(i2c),995(spi)
root@docker:/media/pi# ls -l
total 16
drwxr-xr-x 3 pi pi 16384 Jan 1 1970 EXTDISK
aber nicht wie bei OMV unter:
/srv/...
drwxr-sr-x 8 root users 4096 1. Nov 15:43 dev-disk-by-uuid-cb63f1e8-d769-4496-b437-b976d33b34e5
... wie kriege ich den Usbstick auch auf /srv/.../
damit ich dort einen Ordner "Docker" erstellen kann um dort alles weitere in separaten Ordnern abzuspeichern:
/filebot
/emby
/dupeguru
/nextcloud
...
Also Sowas:
Dort müsste ich folgend jeden Container als nicht-Root laufen lassen können durch ein solches Dockerfile oder im docker-compose.yml:
vim Dockerfile
Danke schonmal für jede Hilfe
Gruss Newsletter