So greifen Sie in Docker auf den lokalen Computer (Hostcomputer) zu

So greifen Sie in Docker auf den lokalen Computer (Hostcomputer) zu

Frage

Wie greife ich in Docker auf die lokale Datenbank zu? Die Verwendung von 127.0.0.1 ist definitiv keine Option, da sich diese auf den Container selbst im Docker-Container bezieht. Daher ist es notwendig, das Problem über andere Kanäle zu lösen.

Lösung

Sie können je nach Betriebssystemtyp eine der folgenden Methoden auswählen.

Docker-Datei:

RUN /sbin/ip route|awk '/default/ { print $3,"\tdockerhost" }' >> /etc/hosts

Laufzeit:

(darf nicht verwendet werden) docker run --add-host dockerhost:`/sbin/ip route|awk '/default/ { print $3}'` [mein Container]
(nützlich) docker run --add-host=dockerhost:`docker network inspect --format='{{range .IPAM.Config}}{{.Gateway}}{{end}}' bridge` [BILD]

Docker für Mac (17.12+):

docker.für.mac.host.internal
MONGO_SERVER=docker.für.mac.host.internal

# docker-compose.yml
Version: '3'

Leistungen:
 API:
  Erstellen: ./api
  Bände:
   - ./api:/usr/src/app:ro
  Häfen:
   - "8000"
  Umfeld:
   - MONGO_SERVER
  Befehl: /usr/local/bin/gunicorn -c /usr/src/app/gunicorn_config.py -w 1 -b :8000 wsgi

Linux

Lösung 1
/sbin/ip route|awk '/default/ { print $3 }'
docker run --add-host dockerhost:`/sbin/ip route|awk '/default/ { print $3}'` [mein Container]
# Lösung 2
-e "DOCKER_HOST=$(ip -4 Adresse show docker0 | grep -Po 'inet \K[\d.]+')"

Prinzip

Um das Prinzip zu verstehen, müssen Sie das Modell von Computernetzwerken und das von Docker implementierte Modell verstehen. Tatsächlich ist in Docker eine virtuelle Brücke docker0 implementiert. Die virtuelle Adresse des externen Hosts in der Brücke, also docker.for.mac.host.internal, wird benötigt, um auf den externen Host im Container zuzugreifen. Wenn Sie interessiert sind, können Sie sich über die Netzwerkprinzipien von Docker, die Prinzipien von Computernetzwerken und Docker Compose informieren.

Referenz

[1].(stackoverflow)füge die Docker-IP des übergeordneten Hosts in die Container-Hosts-Datei ein

[2].(stackoverflow)So erhalten Sie die IP-Adresse des Docker-Hosts aus einem Docker-Container

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detailliertes grafisches Tutorial zum Aktivieren des sicheren Remotezugriffs mit Docker
  • Lösung für das Problem, dass beim Hinzufügen eines Tomcat-Containers zu Docker kein Zugriff auf die Homepage möglich ist
  • So greifen Sie über eine unabhängige IP direkt auf das Docker-für-Windows-Container-Intranet zu
  • Eine Fehlerbehebungserfahrung im CentOS-Docker-Bridge-Modus, bei dem auf den Host-Redis-Dienst nicht zugegriffen werden kann
  • Detaillierte Erklärung zur Verwendung von Docker zum Erstellen von extern zugänglichem MySQL
  • Detaillierte Erläuterung zur Lösung des Problems, dass der Docker-Container nicht über IP auf den Hostcomputer zugreifen kann
  • So verwenden Sie einen Docker-Container für den Zugriff auf das Host-Netzwerk
  • Lösung für das Problem, dass Docker Nginx nach dem Ausführen nicht mehr aufgerufen werden kann
  • Methode zum Zugriff auf unabhängige IP im Docker-Container
  • Drei Möglichkeiten zur Kommunikation zwischen Docker-Containern

<<:  Erklären, wie die SQL-Effizienz analysiert wird

>>:  Detaillierte Erklärung der Rolle des neuen Operators in Js

Artikel empfehlen

Analyse des Implementierungsprinzips von Vue-Anweisungen

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

So vereinheitlichen Sie den Zeichensatz einer vorhandenen MySQL-Datenbank

Vorwort In der Datenbank sind einige Datentabelle...

So kapseln Sie Paging-Komponenten manuell in Vue3.0

In diesem Artikel wird der spezifische Code der m...

Der IE8-Browser wird vollständig mit Webseitenstandards kompatibel sein

<br />Um zu beweisen, dass sein Engagement f...

So legen Sie eine Verzeichnis-Whitelist und eine IP-Whitelist in Nginx fest

1. Legen Sie eine Verzeichnis-Whitelist fest: Leg...

So speichern Sie Bilder in MySQL

1 Einleitung Beim Gestalten einer Datenbank ist e...

Einführung in die Verwendung gängiger Dockerfile-Befehle

Inhaltsverzeichnis 01 CMD 02 EINSTIEGSPUNKT 03 AR...

Detaillierte Erklärung der GaussDB zur MySQL-Leistungsoptimierung

Inhaltsverzeichnis Hintergrund Inspiration kommt ...