# Docker Samba Setup – Dokumentation 🧾
Diese Anleitung beschreibt die Einrichtung eines persistenten Samba-Containers mit Benutzerverwaltung und dauerhaftem Share-Verzeichnis unter `/opt/samba`.
—
## 📁 Verzeichnisstruktur
``` /opt/docker/ ├── samba/ │ ├── config/ # Konfiguration und Passwörter │ └── share/ # Freigegebene Dateien (auf /opt/samba gemountet) ```
### Host-Mount:
```bash UUID=8d717546-5662-4f7e-b580-a3d262614304 /opt/samba ext4 defaults 0 2 ```
—
## ⚙️ Docker Compose Konfiguration
```yaml services:
samba:
image: dperson/samba
container_name: samba
restart: always
stdin_open: true
tty: true
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
volumes:
- /opt/samba:/mount
command: >
-p
-u "benutzer1;passwort123"
-s "public;/mount;yes;no;no;all;none"
```
* `-u`: Benutzername und Passwort im Format `name;passwort` * `-s`: Share mit Parametern: `share;pfad;readonly;browsable;guest;users;admins` * `-p`: Persistiert Passwörter zwischen Neustarts
—
## 🔐 Nutzerzugriff testen
Installiere smbclient auf dem Host (sofern nicht vorhanden):
```bash sudo apt install smbclient ```
Dann prüfen:
```bash smbclient -L //192.168.178.96 -U benutzer1 ```
Wenn SMB1 deaktiviert ist, kann ignoriert werden – die Freigaben sind dennoch über SMB2/3 zugänglich.
—
## 🧼 Bekannte Fehler & Lösungen
| Fehler | Lösung |
| ———————————— | ——————————————————————– |
| `ERROR: command not found: #` | Docker interpretiert `# Kommentar` im Command-String. `#` entfernen. |
| `smbclient: Kommando nicht gefunden` | `sudo apt install smbclient` ausführen. |
| Share erscheint nicht | Netzwerk prüfen & `mount` Verzeichnisrechte prüfen (`chmod 770`). |
—
## 🔁 Neustarts und Persistenz
* Der Benutzer `benutzer1` und das Passwort sind persistent dank `-p`. * Daten im Share `/opt/samba` bleiben bei Neustarts erhalten.
—
## 🗂️ Beispiel für mehrere Benutzer und Shares
```yaml command: >
- p
- u „user1;secret1“ -u „user2;secret2“
- s „data1;/mount;yes;yes;no;user1;user1“
- s „data2;/mount;yes;yes;no;user2;user2“
```
—
Lars Weiß 24.05.2025 19:50