Docker - Container sicher machen

  • 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:

    Code
    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/...

    Code
    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

    Code
    FROM centos:xyz
    Run Useradd -u 1001 centuser
    USER centuser
    CMD ["/bin/sleep", "200"]

    Danke schonmal für jede Hilfe [ab]

    Gruss Newsletter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!