Docker WYKAZUJ port tylko do hosta


100

Czy docker może wystawiać port tylko na hosta, a nie na zewnątrz.

Muszę uruchomić docker z bazą danych mongo i chciałem, aby był dostępny tylko z hosta, ale muszę połączyć port hosta 27017.

Czy to możliwe, czy jedynym możliwym sposobem jest zmiana definicji zapory?

Odpowiedzi:


142

Jasne, po prostu zwiąż to z localhost, na przykład:

docker run -p 127.0.0.1:27017:27017

Ponadto: Twój host może również normalnie rozmawiać z każdym kontenerem przez jego adres IP. Służy docker inspect $IDdo uzyskania zrzutu json (oprócz innych rzeczy) zawierającego IP sieci.


4
Czy jest to coś w rodzaju [1] docker run -p 27017: 27017 -v / var / lib / mongodb / master: / data mongo: storage_test / usr / bin / start-mongo [2] docker run -p 127.0.0.1: 27017: 27017 ...?
Ruben

17
Druga opcja wiąże się z localhost, tak. Pierwsza z nich udostępnia publicznie port. Jeśli nie chcesz portu statycznego, użyj 127.0.0.1::27017.
ZeissS

3
To rozwiązanie ma nie wydaje się pracy dla trybu roju zobaczyć ten GitHub problem
bsimpson53

1
czy odpowiednik docker-compose jest po prostu service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }?
Groostav

1
Jaki jest problem w moim docker-compose, chociaż powiąż tylko z lokalnym hostem, ale jest publicznie dostępny. stackoverflow.com/questions/50621936/…
Tara Prasad Gurung
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.