[Docker] Zugriff auf den Host aus dem Container heraus. http: //host.docker.internal:

Sie können vom Container aus auf den Port zugreifen. Überprüfen Sie dies mit dem Befehl $ curl URL, der den Inhalt der WEB-Seite anzeigt.

Es gibt zwei Verbindungsmethoden: (1) Angabe des Container-Ports und (2) Angabe des Host-Ports.

Zugriffsverfahren

  1. Geben Sie den laufenden Container ein

-Docker exec -it [Containername] bash

Sie können jetzt auf die Bash im Container zugreifen. Je nach Container kann es sh statt bash sein.

  1. Fordern Sie http mit Curl an

▼ Beim direkten Zugriff auf den Hafen des Containers -Curl http: // [Containername]: [Port auf der Containerseite]

▼ Beim Zugriff auf den Port auf der Hostseite -Curl http: //host.docker.internal: [Host-seitiger Port]

Illustration

Überprüfen Sie den laufenden Container


$ docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                            NAMES
d4ae7996f53c        django_web                  "python manage.py ru…"   10 hours ago        Up 10 hours         0.0.0.0:8100->8000/tcp                           django_web_1
  1. 0.0.0.0:8100-> 8000 / tcp Das ist wichtig!

"Portnummer auf der Hostseite-> Portnummer im Container"

"0.0.0.0" steht für den Zugriff von allen Ports, nicht von localhost.

"0.0.0.0:8100-> 8000" bedeutet also, alle 8100-Zugriffe auf Port 8000 im Container abzubilden.


Betritt den Container


$ docker exec -it django_web_1 bash
root@d4ae7996f53c:/code#

Starten Sie bash mit dem Containernamen "django_web_1".


### Beim direkten Zugriff auf den Port des Containers

python


root@d4ae7996f53c:/code# curl http://django_web_1:8000

http: // Containername: Portnummer auf der Containerseite, Sie können auf den vom Container angegebenen Port zugreifen.


Wenn Sie versehentlich den Port auf der Hostseite angeben, tritt ein Fehler auf.

Fehlerbeispiel


root@d4ae7996f53c:/code# curl http://django_web_1:8100
curl: (7) Failed to connect to django_web_1 port 8100: Connection refused

### Beim Zugriff auf den Port auf der Hostseite Verwenden Sie "host.docker.internal: Host-seitige Portnummer", um auf den host-seitigen Port zuzugreifen.

python


root@d4ae7996f53c:/code# curl http://host.docker.internal:8100

host.docker.internal ist das auf der Docker-Seite vorbereitete DNS. Entspricht localhost auf der Hostseite.

Dies ist von der Außenseite des Containers Entspricht dem Ausführen von "curl http: // localhost: 8100".


Raus aus dem Container


root@d4ae7996f53c:/code# exit
$

das ist alles.

Recommended Posts

[Docker] Zugriff auf den Host aus dem Container heraus. http: //host.docker.internal:
[Docker] Kopieren Sie Dateien aus dem Docker-Container auf den Host
So überprüfen Sie das Protokoll im Docker-Container
So erhalten Sie einen Heapdump aus einem Docker-Container
Kopieren Sie Dateien vom Docker-Container auf den Host (Docker-CP).
So erstellen Sie einen Jenkins-Server mit einem Docker-Container unter CentOS 7 von VirtualBox und greifen von einem lokalen PC auf den Jenkins-Server zu
Untersuchen Sie den Ersatz von Docker zu Podman.
Greifen Sie über ein lokales Java-Programm (Host-Betriebssystem) auf MySQL in einem Docker-Container zu
Einstellung zum Verlassen des Docker-Containers mit VScode
So aktualisieren Sie eine vorgefertigte Datei in einem Docker-Container
So mounten Sie den Speicherort der Batchdatei über WSL2 und starten den Docker-Container
Anzeigen der vom Docker-Container verwendeten Festplattenmenge für jeden Container
Ich war süchtig danach, vom Docker-Container aus keine Verbindung zu AWS-S3 herstellen zu können
So installieren Sie Docker
3. Erstellen Sie eine Datenbank für den Zugriff über das Webmodul
Wie schreibe ich Scala aus der Perspektive von Java
Bereitstellen von einem lokalen Docker-Image auf Heroku
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
So ermitteln Sie die Prefetch-Anforderung (Prefetch) im Browser
[Docker] So sehen Sie den Inhalt von Volumes. Starten Sie einen Container mit Root-Rechten.
Lassen Sie uns schreiben, wie API mit SpringBoot + Docker von 0 erstellt wird
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
So gelangen Sie in einen Container, der auf AWS Fargate ausgeführt wird
So erstellen Sie ein Formular zur Auswahl eines Datums aus dem Kalender
Nginx-Container, der den Hostnamen des Hosts anzeigt, auf dem Docker ausgeführt wird
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
[Docker] So trennen Sie eine mit der Datenbank verbundene Sitzung zwangsweise [Postgres]
So wenden Sie das C-Code-Format über die Befehlszeile an
Auf Anforderung wird der Zugriff auf die Ressource beim Push mit Docker verweigert
So legen Sie die IP-Adresse und den Hostnamen von CentOS8 fest
So führen Sie das Kotlin Coroutine-Beispiel über die Befehlszeile aus
[Hinweis] So starten Sie den mit Docker-Compose eingerichteten Windows-Container neu
[GCP] Bis Sie das lokale Docker-Image in die Container-Registrierung verschieben
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
Verwendung der link_to-Methode
Einführung in Linux Container / Docker (Teil 1)
Verwendung der include? -Methode
Verwendung der Methode form_with
So finden Sie den durchschnittlichen Winkel
So erstellen Sie einen Java-Container
Verwendung der Wrapper-Klasse
Einführung in Linux Container / Docker (Teil 2)
So fügen Sie die Löschfunktion hinzu
Aktualisieren Sie MySQL mit Docker von 5.7 auf 8.0
So starten Sie Camunda mit Docker