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-05-22 08:31:44] – [Docker ist mehr als LXC] manfreddocker [2025-07-18 00:42:16] (aktuell) – [IPv6] david
Zeile 6: Zeile 6:
   * [[https://www.youtube.com/watch?v=ytvht7SX0YQ|Docker Basics]]   * [[https://www.youtube.com/watch?v=ytvht7SX0YQ|Docker Basics]]
   * [[https://github.com/abdala/docker-multi-stage-multi-environment|Docker multi-stage and multi-environment examples]]   * [[https://github.com/abdala/docker-multi-stage-multi-environment|Docker multi-stage and multi-environment examples]]
 +
 +
 +===== Sonstiges =====
 +
 +[[https://forums.docker.com/t/some-way-to-clean-up-identify-contents-of-var-lib-docker-overlay/30604]]
 +
 +  > docker volume rm $(docker volume ls -qf dangling=true)
 +
 +  > docker system prune -a -f
 +  > docker volume prune -f
 +
 +//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 25: Zeile 37:
   * Mit dem Docker Hub steht eine Plattform zum Teilen von Container-Images und Dockerfiles zur Verfügung. Hersteller wie Microsoft können dort offizielle Basis-Images anbieten (z. B. für ASP.NET vNext unter Ubuntu), und Sie können darauf aufbauen. Sie können aber auch Docker-Images für Ihre eigene Software dort anbieten, damit Ihre Kunden mit Docker Ihre Anwendung leichter installieren und betreiben können.   * Mit dem Docker Hub steht eine Plattform zum Teilen von Container-Images und Dockerfiles zur Verfügung. Hersteller wie Microsoft können dort offizielle Basis-Images anbieten (z. B. für ASP.NET vNext unter Ubuntu), und Sie können darauf aufbauen. Sie können aber auch Docker-Images für Ihre eigene Software dort anbieten, damit Ihre Kunden mit Docker Ihre Anwendung leichter installieren und betreiben können.
  
- 
-===== Sonstiges ===== 
- 
-[[https://forums.docker.com/t/some-way-to-clean-up-identify-contents-of-var-lib-docker-overlay/30604]] 
- 
-  > docker volume rm $(docker volume ls -qf dangling=true) 
- 
-  > docker system prune -a -f 
-  > docker volume prune -f 
  
  
Zeile 120: Zeile 123:
 [[https://stackoverflow.com/questions/29957143/make-docker-use-ipv4-for-port-binding#30006034]] [[https://stackoverflow.com/questions/29957143/make-docker-use-ipv4-for-port-binding#30006034]]
   > sysctl net.ipv6.bindv6only   > sysctl net.ipv6.bindv6only
 +
 +
 +===== IPv6 =====
 +
 +docker hat ein default bridge netzwerk welches sich zwecks abwärtskompatibilität anders verhält als selbst erstellte bridge netzwerke, daher ist es empfehlenswert eigene bridge netzwerke zu erstellen:
 +
 +  > docker network create bridge64 --ipv6
 +  > docker network create bridge6 --ipv6 --ipv4=false
 +  > docker network create bridge4
 +
 +man kann auch angeben auf welcher adresse ports standardmäßig exposed/published werden (nicht von dem "ipv4" im namen verwirren lassen, man kann sowohl ipv6 als auch ipv4 angeben):
 +
 +  > 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 ist, dass 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.1716366704.txt · Zuletzt geändert: von manfred