it-swarm.com.de

Docker-Container macht keine Ports verfügbar, wenn --net = Host im Docker-Ausführungsbefehl erwähnt wird

Ich habe einen CentOS-Docker-Container auf einem CentOS-Docker-Host. Wenn ich diesen Befehl zum Ausführen des Docker-Images docker run -d --net=Host -p 8777:8777 ceilometer:1.x verwende, erhält der Docker-Container die IP des Hosts, es sind jedoch keine Ports zugewiesen.

Wenn ich denselben Befehl ohne "--net = Host" ausführe, macht docker run -d -p 8777:8777 ceilometer:1.x das Docker die Ports jedoch mit einer anderen IP verfügbar. Die Docker-Version ist 1.10.1. Ich möchte, dass der Docker-Container dieselbe IP-Adresse hat wie der Host mit freigelegten Ports. Ich habe auch in der Dockerfile die Anweisung EXPOSE 8777 erwähnt, aber ohne Verwendung, wenn "--net = Host" im docker run-Befehl erwähnt wird.

19
arevur

Die Docker-Version ist 1.10.1. Ich möchte, dass der Docker-Container dieselbe IP-Adresse hat wie der Host mit freigelegten Ports.

Wenn Sie --net=Host Weist den Container an, den Host-Netzwerkstapel zu verwenden. Daher können Sie keine Ports für den Host freigeben, da dies ist der Host (was den Netzwerkstapel betrifft) ist ).

docker inspect zeigt möglicherweise nicht die verfügbaren Ports an, aber wenn eine Anwendung einen Port überwacht, ist dieser verfügbar, als ob er auf dem Host ausgeführt würde.

21
dnephin

Diese Antwort hat mich verwirrt. Anscheinend sollte mein Docker-Image auf Port 8080 erreichbar sein. Dies war jedoch nicht der Fall. Dann habe ich gelesen

https://docs.docker.com/network/Host/

Zitieren

Der Host-Netzwerktreiber funktioniert nur auf Linux-Hosts und wird nicht von Docker für Mac, Docker für Windows oder Docker EE für Windows Server unterstützt.

Das ist ziemlich nervig, da ich auf einem Mac bin. Der Docker-Befehl sollte einen Fehler melden, anstatt mich glauben zu lassen, dass er funktionieren sollte.

Diskussion darüber, warum kein Fehler gemeldet wird

https://github.com/docker/for-mac/issues/2716

Ich bin nicht sicher, ob ich überzeugt bin.

3
Shane Gannon