Nie możesz. Jakie porty są publikowane na hoście dokera, to decyzja, którą powinien podjąć lokalny administrator, a nie obraz, który próbują uruchomić; byłby to (a) problem z bezpieczeństwem (hej, właśnie otworzyłem dostęp ssh do twojego systemu!) i (b) skłonny do awarii (mój kontener serwera WWW nie może powiązać portu 80, ponieważ już uruchomiłem serwer port 80).
Jeśli chcesz uniknąć długich linii poleceń docker run
, rozważ użycie funkcji podobnej do docker-compose, aby zautomatyzować proces. Następnie można przejść doker-komponować konfigurację takiego:
mywebserver:
image: myname/mywebserver
ports:
- 80:8080
a następnie prosty docker-compose up
rozpocznie swój pojemnik z portu kontenerowego 8080 związany z gospodarzem porcie 80.
Aktualizacja 11.03.2017
W odpowiedzi na komentarz Willi za:
Korzystanie docker-compose
nie będzie h elp z problemem kolizji portów. Problem kolizji portów jest powodem, dla którego obrazy nie powinny być w stanie określić powiązań portów hosta. Po prostu oferowałem docker-compose
jako alternatywę dla długich linii poleceń docker run
z wieloma powiązaniami portów. Problem kolizji portów potencjalnie umożliwiłby kontenerowi przeprowadzenie ataku polegającego na odmowie usługi na twoim hoście: jeśli na przykład kontener zaczyna się i łączy się z portem 80 przed serwerem Apache na twoim hoście (lub w innym kontenerze), właśnie straciłeś swoją usługę internetową.
Jeśli chodzi o kwestię bezpieczeństwa: jeśli obraz byłby w stanie określić powiązania portu hosta, kontener mógłby otworzyć dostęp do kontenera bez Twojej wiedzy. Zezwolenie użytkownikowi zdalnemu na dostęp do kontenera na twoim hoście otwiera cię na możliwość kompromisu hosta w przypadku, gdy funkcje przestrzeni nazw w kernelu nie całkowicie izolują kontener, a nawet jeśli całkowicie ufasz izolacji, to otwiera cię ona do potencjalnych problemów prawnych, jeśli pojemnik ten jest wykorzystywany do nielegalnych celów. W obu przypadkach jest to zły pomysł.
Dzięki! to pomaga –
Jak jednak używać funkcji dokowania do rozwiązywania problemów związanych z kolizją portów? Poza tym możesz wyjaśnić nieco problem bezpieczeństwa? – Willa