Портовете на контейнера са специфични мрежови портове, които могат да бъдат свързани с конкретни услуги или приложения в рамките на контейнера.
Всеки контейнер може да има свои собствени портове, които могат да се използват за комуникация с външния свят или за комуникация с други контейнери. При стартирането на контейнер можете да посочите кои портове трябва да бъдат достъпни в контейнера и кои портове трябва да бъдат пренасочени към хост машината.
ports:
external_port:Internal port
Например, нека пренасочим порт 80 като 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Когато контейнерът е стартиран, приложението вътре в контейнера може да слуша или да изпраща данни през съответния порт. Потребителите могат да взаимодействат с приложението, като осъществяват достъп до порта на контейнера, който е препратен към хост машината.
За да стартирате портовете на контейнера, ще трябва да използвате командата docker run
с флага -p
или --publish
.
Синтаксисът на командата docker run с флаг -p
е следният:
docker run -p <host port>:<container port> <image_name>
Където:
<host-port> е портът на вашия хост, който ще бъде проксиран към порта на контейнера.
<container-port> (порт на контейнера) - портът в контейнера, който ще бъде достъпен чрез посочения порт на хоста.
<име_на_контейнера> - името на образа на контейнера, който искате да стартирате.
Например, за да стартирате контейнер с уеб сървър на порт 80 и да го проксирате до порт 8080 на вашия хост, можете да използвате следната команда:
docker run -p 8080:80 nginx
Уеб сървърът, работещ в контейнера, сега ще бъде достъпен на порт 8080 на вашия хост.
Можете също така да използвате диапазон от портове, като посочите няколко двойки <хост-порт>:<контейнер-порт>.
Например:
docker run -p 8080-8082:80-82 nginx
Така портовете 80, 81 и 82 в контейнера ще бъдат прехвърлени съответно към портове 8080, 8081 и 8082 на вашия хост. След като стартирате контейнера с проксираните портове, ще можете да получите достъп до тях чрез посочените портове на хоста.