W pliku docker-compose.yml dostępne są opcje dla ports
i expose
. Czym się różnią?Jaka jest różnica między portami dokujacymi a odsłoną
93
A
Odpowiedz
132
Według docker-compose reference,
Ports jest zdefiniowany jako:
wystawiać porty. Określ oba porty (HOST: CONTAINER) lub po prostu port kontenera (zostanie wybrany losowy port hosta). wymienione w Docker-compose.yml
- porty będą dzielone między różnymi służbami rozpoczętych przez Döcker-komponować.
- Porty będą narażone na działanie hosta na losowy port lub dany port.
My docker-compose.yml
wygląda
mysql:
image: mysql:5.7
ports:
- "3306"
Jeśli robię docker-compose up
będzie wyglądać następująco:
$ docker-compose ps 10:27:28
Name Command State Ports
-------------------------------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:32769->3306/tcp
Expose jest zdefiniowany jako:
Expose porty bez ich publikację do hosta - będą one dostępne tylko do powiązanych usług. Można określić tylko port wewnętrzny.
Porty nie są narażone na działanie hostów, narażonych wyłącznie na inne usługi.
mysql:
image: mysql:5.7
expose:
- "3306"
Jeśli robię docker-compose up
będzie wyglądać następująco:
Name Command State Ports
---------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp
Pytałeś pytanie iw tej samej chwili dajesz swoją odpowiedź ..? – lvthillo
@ lorenzvth7 okazuje się, że znalazłem odpowiedź, dodając moje pytanie, a Stackoverflow pozwala odpowiedzieć w tym samym czasie. Na dole widzisz [] Odpowiedz na własne pytanie - podziel się swoją wiedzą, stylem pytań i odpowiedzi :-) – bibstha
Sposób na zrzucenie własnego wyniku reputacji, tak jak sądzę, – Ivan