Какво представляват контейнерните пристанища

10.09.2023, 23:08

Портовете на контейнера са специфични мрежови портове, които могат да бъдат свързани с конкретни услуги или приложения в рамките на контейнера.

Какво е специалното при контейнерите

Всеки контейнер може да има свои собствени портове, които могат да се използват за комуникация с външния свят или за комуникация с други контейнери. При стартирането на контейнер можете да посочите кои портове трябва да бъдат достъпни в контейнера и кои портове трябва да бъдат пренасочени към хост машината.

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 на вашия хост. След като стартирате контейнера с проксираните портове, ще можете да получите достъп до тях чрез посочените портове на хоста.