Docker Containern erreichen keine Ressource außerhalb der VM


Problembeschreibung:

Ein häufiges Problem von Dockern innerhalb einer Virtualisierungsinfrastruktur ist, dass das den virtuellen Maschinen zur Verfügung gestellte Netzwerk nicht die Standard-MTU von 1500 hat. Dies ist beispielsweise häufig der Fall, wenn in einer Cloud-Infrastruktur (z. B. OpenStack) mit einem Software Defined Network gearbeitet wird. Der Docker Daemon überprüft beim Start nicht die MTU der ausgehenden Verbindung. Daher wird der Wert der Docker-MTU auf den Standard 1500 gesetzt.

Mehr auf https://mlohr.com/docker-mtu/

Man kann in seiner Virtuellen Maschine prüfen welche MTU Size verwendet wird durch "ip link".

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether uu:vv:ww:xx:yy:zz brd ff:ff:ff:ff:ff

Wenn die ausgehende Schnittstelle (in diesem Fall ens3) eine MTU kleiner als 1500 hat, sind einige Maßnahmen erforderlich. Wenn es größer oder gleich 1500 ist, trifft dieses Problem nicht auf Sie zu.

Lösungen:

1. Lösung des Problems (Docker-Daemon) 

Durch anpassen der MTU Size in /etc/docker/daemon.json (Datei erstellen wenn nicht vorhanden) kann das Problem für alle Container auf der VM behoben werden.

vim /etc/docker/daemon.json 
{
   "mtu": 1450
}

systemctl restart docker.service
systemctl restart docker.socket

2. Lösung des Problems (docker-compose) 

Durch Anpassung der MTU Size im docker compose file kann das Problem für eine Anwendung auf allen VMs gelöst werden.

...
networks:
  default:
    driver: bridge
    driver_opts:
com.docker.network.driver.mtu: 1450
...

docker-compose down; docker-compose up

Testfall:

docker run --rm -it ubuntu:18.04 /bin/bash
apt update
... hangs
exit

vim /etc/docker/daemon.json
{
  "mtu": 1450
}
systemctl restart docker.service
systemctl restart docker.socket

docker run --rm -it ubuntu:18.04 /bin/bash
apt update
... runs
Tags: Cloud, Docker
2021-10-19 12:44 msrba {writeRevision}
Durchschnittliche Bewertung: 4.75 (4 Abstimmungen)

Kommentieren nicht möglich

Chuck Norris has counted to infinity. Twice.

Beliebte FAQ-Beiträge RSS

  1. Welchen TSM-Client soll ich nutzen? Welchen TSM-Clienten sollte ich ... (5 von 5 - 4 Abstimmungen)
  2. Was bedeutet das Projekt ? (5 von 5 - 2 Abstimmungen)
  3. Kann ich das Betriebssystem in meiner VM ändern? (5 von 5 - 3 Abstimmungen)
  4. Kann ich wissenschaftliche Arbeiten in GWDG ownCloud speichern? Sind ... (5 von 5 - 1 Abstimmung)
  5. Wie richte ich Scan to Mail bei einem Konica-Minolta-Multifunktionsgerät ... (5 von 5 - 2 Abstimmungen)
  6. Wieviele Kopien dürfen auf den Druckern und Plottern der ... (5 von 5 - 1 Abstimmung)
  7. In dem Log meiner VM stehen sehr viele Einträge ... (5 von 5 - 1 Abstimmung)
  8. Wie kann ich Dateien mit anderen Personen teilen? (5 von 5 - 1 Abstimmung)
  9. Wie konfiguriere ich vpnc für die Nutzung des VPN ... (5 von 5 - 2 Abstimmungen)
  10. Der ownCloud Client arbeitet nicht mehr, im Log ist ... (5 von 5 - 5 Abstimmungen)

Neueste FAQ-Beiträge RSS

  1. Wie kann ich Dateien mit anderen Personen teilen? (2026-03-12 14:09)
  2. Meine TSM-Sicherung läuft sehr langsam, was kann ich tun? ... (2026-02-13 12:23)
  3. Welchen TSM-Client soll ich nutzen? Welchen TSM-Clienten sollte ich ... (2026-02-13 12:21)
  4. "q filespaces" zeigt mir zwar die Filespacenamen, aber kein ... (2026-02-13 12:11)
  5. ANS0361I DIAG: B/A Performance thread, fatal error, signal 11 ... (2026-02-13 12:10)

Wichtige FAQs