Docker und seine Volumen

Mubala

Cadet 2nd Year
Registriert
Feb. 2025
Beiträge
29
Ich verwende aapanel aber mit diesem bekomme ich das ganze überhaupt nicht umgesetzt, weil die ganzen Anleitungen auf die Konsole aufbauen. Jetzt würde ich aber gerne einmal wissen wie solche Angaben zu verstehen ist im Beispiel von Nextcloud.

# For Linux and without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already in place:
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Vermute das "--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \" die Daten beinhaltet sprich meine angelegten Benutzer und somit Dateien, Kalender und Kontakte. Wenn ich das ganze aber nun auf eine gemountete Festplatte haben möchte wie zum Beispiel "/mnt/storage/nextcloud" wie passe ich das ganze an ?

Das weitere Thema sind die Ports weil eben diese schon belegt sind, verändere ich nur die Ports auf der linken Seite oder alle auf den gleichen Wert nach dem Doppelpunkt ?
 
Mubala schrieb:
Vermute das "--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \" die Daten beinhaltet sprich meine angelegten Benutzer und somit Dateien, Kalender und Kontakte. Wenn ich das ganze aber nun auf eine gemountete Festplatte haben möchte wie zum Beispiel "/mnt/storage/nextcloud" wie passe ich das ganze an ?
So:

Code:
--volume /mnt/storage/nextcloud:/mnt/docker-aio-config

Bei den Ports kommt es darauf an was du erzielen willst. Am Ende ist sehr einfach wie oben bei dem Volume:

Alles was links vom ":" ist bezieht sich immer auf den Host-System. Alles rechts vom ":" bezieht sich auf den Container.

Also beim Volume mountest du quasi "/mnt/storage/nextcloud" im Container unter "/mnt/docker-aio-config" ein. Das gleiche bei den Ports also wenn du bei den Ports z.B. so was hast: 8080:80 bedeutet das der Port "8080" vom Host System wird mit dem Port "80" im Container verbunden.

Sprich wenn du dann im Browser "deinedomain.tld:8080" eingibst wirst du mit dem Dienst verbunden der im Container auf Port 80 läuft.

Daher bei Docker einfach Grundregel:
Links vom Doppelpunkt Daten vom Host, rechts davon Daten vom Container - egal ob es sich um Ports, Volumes oder sonst was handelt :)
 
  • Gefällt mir
Reaktionen: Mubala, madmax2010, Garmor und eine weitere Person
Mubala schrieb:
Wenn ich das ganze aber nun auf eine gemountete Festplatte haben möchte wie zum Beispiel "/mnt/storage/nextcloud" wie passe ich das ganze an ?

Ich lenke pauschal /var/lib/docker/volumes um. Das einzeln per Volume ist zu nervig.
 
  • Gefällt mir
Reaktionen: madmax2010
@JumpingCat Hab nur Vaultwarden und Nextcloud als Docker, aber nur NextCloud muss ich auslagern weil ich von Haus aus die externe Storage verwenden möchte ohne das einbinden in NextCloud.

Aber aus reinem Interesse wie würde das mit deiner Zeile im obigen NextCloud aussehen ?

@kim88 danke gut erklärt hab das ganze nun verstanden.
 
Also wenn ich das Docker im ersten Thread ausführe mit einem Verzeichnis auf dem Host kommt.

It seems like you did not give the mastercontainer the correct name? (The 'nextcloud-aio-mastercontainer' container was not found.)

Aber warum möchte er unbedingt nextcloud-aio-mastercontaine bzw. wenn ich doch

--volume /mnt/test:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

verwende sollte er doch einfach den Container in /mnt/test erstellen können ?

Wo ist mein Denkfehler, sorry Docker ist für mich Neuland. :)
 
Zurück
Oben