Benutzer-Werkzeuge

Webseiten-Werkzeuge


docker

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
docker [2024-09-09 11:10:52] – [Sonstiges] manfreddocker [2025-07-18 00:42:16] (aktuell) – [IPv6] david
Zeile 17: Zeile 17:
   > docker volume prune -f   > docker volume prune -f
  
-//für zukünftige Projekte nur ''docker-ce'' aus Docker-Repo nutzen, nicht ''docker.io'' aus dem Ubuntu-Repo nutzen//+//für zukünftige Projekte __nur__ ''docker-ce'' aus [[https://docs.docker.com/engine/install/ubuntu/|Docker-Repo]] nutzen, __nicht__ ''docker.io'' aus dem Ubuntu-Repo nutzen//
  
  
Zeile 127: Zeile 127:
 ===== IPv6 ===== ===== IPv6 =====
  
-docker hat ja ein default bridge netzwerk, man kann mit diesen kommandos 2 neue bridges erstellen, die ipv6 können:+docker hat ein default bridge netzwerk welches sich zwecks abwärtskompatibilität anders verhält als selbst erstellte bridge netzwerkedaher ist es empfehlenswert eigene bridge netzwerke zu erstellen:
  
-  > docker network create bridge6 --ipv6 -o com.docker.network.bridge.host_binding_ipv4="::" 
   > docker network create bridge64 --ipv6   > docker network create bridge64 --ipv6
-das 1. aktiviert ipv6 im container und macht, dass ports per default auf ipv6 gepublished werden, +  > docker network create bridge6 --ipv6 --ipv4=false 
-also -p "8080:80" auf bridge6 verhält sich dann so wie -p "[::]:8080:80" sich auf der normalen bridge verhalten würde+  > docker network create bridge4
  
-das 2. aktiviert einfach nur ipv6 im container, d.h. -p "8080:80auf bridge64 führt dazudass der service auf dem host unter [::]:8080 und 0.0.0.0:8080 erreichbar ist+man kann auch angeben auf welcher adresse ports standardmäßig exposed/published werden (nicht von dem "ipv4im namen verwirren lassenman kann sowohl ipv6 als auch ipv4 angeben):
  
-wichtig zu wissen, ipv6-only services im container sind nicht erreichbar, egal was man macht, denn docker macht auch in ipv6 aktivierten netzwerken immer ipv6->ipv4 und/oder ipv4->ipv4 (applikationen im container müssen also den socket auf dem sie listen wollen mit dem flag IPV6_V6ONLY gleich false oder 0 erstellen, in nginx geht das mit ipv6only=off)+  > docker network create bridge64 --ipv6 -o com.docker.network.bridge.host_binding_ipv4="::" 
 +  > docker network create bridge64 --ipv6 -o com.docker.network.bridge.host_binding_ipv4="0.0.0.0" 
 +  > docker network create bridge64 --ipv6 -o com.docker.network.bridge.host_binding_ipv4="::1" 
 +  > docker network create bridge64 --ipv6 -o com.docker.network.bridge.host_binding_ipv4="127.0.0.1" 
 + 
 +dadurch verhält sich die minimale port notation (nur port ohne ip) so als ob man die jeweils konfigurierte ip mit angegeben hätte (die beiden letzteren sind äußerst praktisch, wenn die services nur auf localhost erreichbar sein sollen): 
 + 
 +  * ''-p "8080:80"'' -> ''-p "[::]:8080:80"'' 
 +  * ''-p "8080:80"'' -> ''-p "0.0.0.0:8080:80"'' 
 +  * ''-p "8080:80"'' -> ''-p "[::1]:8080:80"'' 
 +  * ''-p "8080:80"'' -> ''-p "127.0.0.1:8080:80"'' 
 + 
 +wichtig zu wissen istdass ipv6-only services im container standardmäßig nicht erreichbar sind, egal welchen oben gezeigten weg man wählt, denn docker macht auch in ipv6 aktivierten netzwerken immer ipv6 -> ipv4 und/oder ipv4 -> ipv4 nat (applikationen im container müssen also den socket auf dem sie listen wollen mit dem flag IPV6_V6ONLY gleich false oder 0 erstellen, in nginx geht das bspw. mit ipv6only=off), alternativ kann man den docker-proxy umkonfigurieren oder deaktivieren und statt nat den routed mode nutzen, siehe dazu die offiziellen docker docs
  
  
/home/http/wiki/data/attic/docker.1725880252.txt · Zuletzt geändert: von manfred