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.
Es gibt einige Möglichkeiten zu überprüfen, ob Ihre App läuft.
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 Ссылка ).
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.
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.
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:
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!).
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:
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.
Tags und Links docker boot2docker