2014-02-28 10 views
42

Ist Docker in der Lage, einen Port nur dem Host und nicht der Außenseite auszusetzen.Docker EXPOSIERT einen Port nur an Host

Ich brauche einen Docker zu setzen mit einer Mongo-Datenbank ausgeführt wird, und ich wollte, dass es nur aus dem Host war, aber ich brauche den Host-Port 27017.

Ist das möglich zu verbinden, oder das nur tun Möglicher Weg ist, Firewall-Definitionen zu ändern?

Antwort

59

Sicher, binden Sie es nur zu localhost, wie folgt aus:

Docker run -p 127.0.0.1:27017:27017

auch: Ihr Host kann auch normalerweise über jedem Behälter sprechen seine IP. Verwenden Sie docker inspect $ID, um einen Json-Dump (neben anderen Sachen) zu erhalten, der die Netzwerk-IP enthält.

+4

Also ist es so etwas wie [1] docker run -p 27017: 27017 -v/var/lib/mongodb/master:/daten mongo: storage_test/usr/bin/start-mongo [2] docker run -p 127.0 .0.1: 27017: 27017 ...? – Ruben

+13

Die zweite Option bindet an localhost, ja. Der erste stellt den Port öffentlich zur Verfügung. Wenn Sie keinen statischen Port wünschen, verwenden Sie '127.0.0.1 :: 27017'. – ZeissS

+1

Diese Lösung scheint ** nicht ** für den Schwarmmodus zu funktionieren. Siehe [this github issue] (https://github.com/moby/moby/issues/32299) – bsimpson53

Verwandte Themen