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:
|
<<: Erklären, wie die SQL-Effizienz analysiert wird
>>: Detaillierte Erklärung der Rolle des neuen Operators in Js
Inhaltsverzeichnis Erstellen Sie ein Docker-Image...
Mysql konvertiert Abfrageergebnissatz in JSON-Dat...
Vorwort Um bei Datenbankoperationen die Richtigke...
In diesem Artikel wird der spezifische Code zur V...
Sie können dieses Logo lokal als .rar-Datei speic...
Schauen wir uns zunächst ein Beispiel an Code kopi...
Inhaltsverzeichnis Einführung Protokollklassifizi...
Wie definiert man komplexe Komponenten (Klassenko...
eins. Warum einen privaten Nexus-Server erstellen...
Zusammenfassung Bei der Diskussion über MySQL-Ind...
Vorwort Heute habe ich von einem Entwickler die R...
In diesem Artikel wird der spezifische Code für J...
Bereiten Sie die Zutaten wie oben gezeigt vor (ps...
Inhaltsverzeichnis Fremdschlüssel So ermitteln Si...
Inhaltsverzeichnis 1. Ändern Sie den Port 2375 vo...