docker-komponieren Netzwerkerstellung kickt mich aus ssh

8

Ich brauche Hilfe, um meine Netzwerkprotokolle aufgrund von docker-compose networking zu verstehen.

Ich bin in eine VM versetzt worden, und ich habe zwei Projekte mit docker-compose. Der erste wird einfach mit docker-compose up gestartet. Wenn ich versuche, den zweiten zu starten, friert meine SSH-Sitzung ein und ich kann nicht mehr in die VM wechseln. Nach viel Versuch und Irrtum und nachdem ich dies gelesen habe, habe ich versucht Fügen Sie an die Datei docker-compose.yml meines zweiten Projekts Folgendes an:

%Vor%

Dabei ist ffamfe_default der Name des Netzwerks, das von docker-compose up des ersten Projekts erstellt wurde. Damit versetzt mich docker-compose up im 2. Projekt nicht aus der ssh-Sitzung heraus.

Ich habe die Logs in /var/log/*.log getailt, und hier ist die Ausgabe mit der Abschnitt Netzwerke in der docker-compose.yml -Datei (ohne das Timestamp-Präfix: Jan 19 09:13:42 hostname kernel: [420096.305357] ):

%Vor%

und hier ist die Ausgabe ohne der Abschnitt networks (d. h. wenn ich aus der ssh-Sitzung rausgeschmissen werde):

%Vor%

Ich verstehe nicht wirklich, wie man diese Logs liest. Hier ist auch mein ifconfig . Kann jemand mir helfen, die Protokolle zu lesen und herauszufinden, was das Problem ist?

    
shadi 19.01.2017, 07:32
quelle

2 Antworten

0

Ich habe schließlich ein docker network ls ausgeführt. Die Ausgabe war eine Liste von mehr als 15 Netzwerken, die sehr alt waren. Ich habe ein docker ps ausgeführt, um sicherzustellen, dass nichts mit diesen Netzwerken verbunden war. Ein Container lief tatsächlich noch (redis) und befand sich in einem Netzwerk namens bridge . Ich habe den Container angehalten. Dann ging ich durch alle Netzwerke mit docker network rm <network name> , bis mir 4 Netzwerke blieben: Bridge, Host, None und das einzige Netzwerk, das noch funktionierte. Dann könnte ich wie gewohnt wieder neue Netzwerke mit docker-compose up starten

    
shadi 22.02.2017, 14:07
quelle
2

br- xxxxxxx sind die Bridge-Schnittstellen von Docker und veth xxxxxxx sind die virtuellen Schnittstellen Ihrer Container, Docker verwendet diese veth-Schnittstellen, aber Sie interagieren nicht direkt mit ihm Sie verwenden eine IPv6-Adresse und haben kein IPv4. Docker kann keine NAT-Schnittstellen erstellen, es kann nur Bridge und Veth mit IPv6 für Container erstellen. Sie können Ihre Bridge mit jeder physischen oder virtuellen Schnittstelle Ihres Hosts verknüpfen.

So funktioniert es:

eth0 (Ihre Schnittstelle oder V-Schnittstelle, wenn Sie möchten) ↔ br xxxxx (Andockbrücke) ↔ veth xxxxx (v-Schnittstelle Ihres Containers)

Es ist alles, was ich sagen kann, ich bin mir nicht sicher, ob jemand anders antworten wird, es gibt nicht viele Docker-Experten, also gebe ich Ihnen alle Informationen, die ich kann, um Ihre Logs zu verstehen.

    
Thibault Loison 09.02.2017 09:00
quelle

Tags und Links