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.
-Docker exec -it [Containername] bash
Sie können jetzt auf die Bash im Container zugreifen. Je nach Container kann es sh statt bash sein.
▼ 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]
Ü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
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".
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.
Fehlerbeispiel
root@d4ae7996f53c:/code# curl http://django_web_1:8100
curl: (7) Failed to connect to django_web_1 port 8100: Connection refused
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