Ermitteln der IP-Adresse eines Andockcontainers

8

Ich habe eine Ubuntu-Maschine, die eine VM ist, auf der ich Docker installiert habe. Ich verwende dieses Gerät von meinem lokalen Windows-Rechner und tue ssh und öffne das Terminal zum ubuntu-Rechner.

Nun werde ich ein Docker-Image nehmen, das alle notwendigen Software für zB: Apache enthält. Später werde ich eine Beispielapplikation bereitstellen (was eine Web ApplicationP ist und sie speichern).

Jetzt bin ich in einem verwirrten Modus wie in der wie die bereitgestellte Anwendung überprüft wird, wenn es ordnungsgemäß ausgeführt wird. das wäre die Adresse des Containers, der die bereitgestellte Anwendung enthält. für zB: - Wenn ich Ссылка eingib, was die Adresse des ubuntu-Rechners ist, bekomme ich gerade eine Auszeit.

Kann mir jemand sagen, wie man die bereitgestellte Anwendung verifiziert? Auch das Drucken der Ausgabe des Programms auf der Konsole funktioniert ohne Probleme, da die Ausgabe gedruckt wird, nur dass ich einige Zweifel bezüglich der Webanwendung habe.

    
Jquery Developer 01.06.2014, 07:40
quelle

3 Antworten

8

Es gibt einige Möglichkeiten zu überprüfen, ob Ihre App läuft.

Remote-API

Wie JimiDini gesagt hat, ist eine Möglichkeit die entfernte Docker-API. Sie können damit alle laufenden Container sehen (was wäre Ihr Anwendungsfall, oder?), Einen bestimmten Container untersuchen oder Container starten und stoppen. Die API ist eine REST-API mit mehreren Binding für Programmiersprachen (in Ссылка ). Einige von ihnen sind sehr veraltet. Um die Docker Remote-API von einem anderen Rechner zu verwenden, musste ich sie explizit öffnen:

%Vor%

Beachten Sie, dass die API jetzt für die Welt offen ist! In einem realen Szenario müssten Sie sie auf irgendeine Weise sichern (siehe Beispiel unter Ссылка ).

Docker PS

Um alle laufenden Container anzuzeigen, führen Sie docker ps auf Ihrem Host aus. Dadurch werden alle aktiven Container aufgelistet. Wenn Ihre App nicht angezeigt wird, wird sie nicht ausgeführt. Außerdem werden Ihnen die Ports Ihrer App angezeigt. Sie können dies auch über die Remote-API tun.

Logs

Sie können auch die Protokolle überprüfen. Sie können docker attach <container id> ausführen, um an einen bestimmten Container anzuhängen und dessen Standardausgabe zu sehen. Sie können auch% code% ausführen, um die Docker-Protokolle zu erhalten. Ich bevorzuge es, die Logs in ein bestimmtes Verzeichnis zu schreiben, z. Alle Protokolle auf docker logs <container id> und mounten diesen Ordner auf meinem Host-Rechner. Dann werden alle deine Logs in /var/log auf deinem Host landen.

%Vor%

Ein Wort zu Ports und IP

Jeder Container erhält eine eigene IP-Adresse. Sie können diese IP-Adresse über die Remote-API oder über Docker auf dem Host-Computer direkt überprüfen. Sie können auch einen bestimmten Hostnamen für den Container angeben (indem Sie /home/ubuntu/docker-logs an den Befehl --hostname="test42" übergeben). Sie haben das aber meistens nicht gebraucht.

Um auf die Anwendung im Container zuzugreifen, müssen Sie den Port im Container öffnen und an einen Port auf dem Host binden.

In Ihrer Dockerfile müssen Sie run der Port, auf dem Ihre App läuft:

%Vor%

Wenn Sie Ihren Container starten, müssen Sie diesen Port an einen Port des Hosts binden:

%Vor%

Sie können jetzt auf Ihre App auf EXPOSE oder http://localhost:80 zugreifen.

Wenn Ihre App nicht antwortet, überprüfen Sie, ob der Container ausgeführt wird, indem Sie http://127.0.0.1:80 oder die Remote-API eingeben. Wenn es nicht läuft, überprüfen Sie die Protokolle für den Grund.

(Hinweis: Wenn Sie Ihre Ubuntu-VM in etwas wie VirtualBox ausführen und versuchen, von Ihrem Windows-Rechner darauf zuzugreifen, stellen Sie sicher, dass Sie auch die Ports in VirtualBox geöffnet haben!).

    
Thomas Uhrig 01.06.2014, 09:35
quelle
6

Der Docker-Container hat eine separate IP-Adresse. Standardmäßig ist es privat (zugänglich nur vom Host-Rechner).

Docker stellt alle Metadaten (einschließlich der IP-Adresse) über seine API zur Verfügung:

  1. Ссылка
  2. Ссылка

Sie können auch ein kleines Tool namens docker-gen zur Inspiration betrachten. Es überwacht Docker-Ereignisse und erstellt Konfigurationsdateien auf dem Host-Rechner mit Vorlagen.

    
JimiDini 01.06.2014 09:10
quelle
3

Um die IP-Adresse eines Andock-Containers zu erhalten, wenn Sie seine ID kennen (eine lange Hex-Zeichenkette) oder wenn Sie sie benannt haben:

%Vor%     
Bryan 02.12.2014 13:50
quelle

Tags und Links