Dockerfile wie man localhost Alias hinzufügt?
Hi, ich muss localhost
alias in Dockerfile
hinzufügen
Ich mache folgendes:
RUN echo '127.0.0.1 locdev' >> /etc/hosts
Aber wenn ich dann zur image bash console gehe
%Vor%und versuchen, diesen Host zu pingen, es wirft Fehler
%Vor% Was /etc/hosts
enthält?
Es gibt keine anderen Datensätze
Weiß jemand, wie kann ich das tun? Ich muss dies in Dockerfile
als externen Dienst tun, führen Sie dieses Andockfenster aus und ich führe es nicht von der Befehlszeile aus.
In meinem Fall ist es eine PHP
-Anwendung, die in Bitbucket
repository gespeichert wird. Es gibt ein neues Feature namens PIPELINES
. Es wird eine Anwendung auf Docker
image erstellt.
In meinem Fall verbindet sich diese Anwendung mit mysql
server, wo ich config nicht ändern kann (es wird die Produktion unterbrechen). Auf diesem Docker-Image habe ich mysql
server eingerichtet. So funktioniert localhost
, aber ich muss diesen Alias für localhost
hinzufügen, um den Produktionsserver nicht zu unterbrechen;
Dockerfile
Fragment:
Mein docker build
Ausgabebeispiel:
Docker verwaltet die /etc/hosts
-Datei für Sie. /etc/host
wird nicht funktionieren.
Sie können der Docker-DNS-Diensterkennung mit der Option --add-host
jedoch zusätzliche Hosts hinzufügen, wenn Sie docker create
oder docker run
ausführen.
Dies ist aus der Ausgabe von docker run --help
:
Beachten Sie jedoch, dass 127.0.0.1 aus einem Container Sie nicht zum Container-Host bringt, sondern Sie auf dem Container landen wird, da es über eine eigene Schnittstelle 127.0.0.1 verfügt.
Die eth0-IP-Adresse Ihres Andock-Hosts kann von Ihrem Container aus weitergeleitet werden. Sie könnten das in Ihrem Argument --add-host
verwenden. Zum Beispiel, wenn mein Docker Host 192.168.1.43 in meinem lokalen Netzwerk ist, könnte ich docker run --add-host locdev:192.168.1.43 ...
tun. Zu diesem Zeitpunkt wird locdev
vom Container zurück in diese IP-Adresse aufgelöst.
Besser als die Adresse von eth0
(oder einer anderen Schnittstelle auf Ihrem Host) verwenden Sie einfach die Adresse des Standard-Gateways in Ihrem Docker-Container. Dies ist die Adresse der vom Docker verwalteten Bridge auf Ihrem Host, mit dem der Container verbunden ist. Sie können dies wie folgt erhalten:
Das wird immer eine Adresse Ihres Gastgebers sein.
Tags und Links docker