Портови контејнера су специфични мрежни портови који могу бити везани за одређене услуге или апликације унутар контејнера.
Сваки контејнер може имати своје портове, који се могу користити за комуникацију са спољним светом или за комуникацију са другим контејнерима. Када покрећете контејнер, можете одредити који портови треба да буду доступни унутар контејнера и који портови треба да буду прослеђени главној машини.
ports: external_port:Internal port
На пример, проследимо порт 80 као 8094:
docker-nginx: image: nginx ports: - '8094:80'
Када је контејнер покренут, апликација унутар контејнера може да слуша или шаље податке на одговарајућем порту. Корисници могу да комуницирају са апликацијом тако што ће приступити порту контејнера који је прослеђен главној машини.
Да бисте покренули портове контејнера, мораћете да користите docker run
команду са заставицом -p
или --publish
.
Синтакса доцкер рун команде са ознаком -p
је следећа:
docker run -p <host port>:<container port> <image_name>
где:
<хост-порт> - порт на вашем хосту који ће бити прокси порту контејнера.
<цонтаинер-порт> - порт унутар контејнера који ће бити доступан преко наведеног хост порта.
<име_имаге> је име слике контејнера коју желите да покренете.
На пример, да бисте покренули контејнер веб сервера на порту 80 и прокси га на порту вашег хоста 8080, можете користити следећу команду:
docker run -p 8080:80 nginx
Сада ће веб сервер који ради у контејнеру бити доступан на порту 8080 вашег хоста.
Такође можете да користите опсег портова тако што ћете навести више парова <хост-порт>:<цонтаинер-порт>.
на пример:
docker run -p 8080-8082:80-82 nginx
Ово ће прокси портове 80, 81 и 82 унутар контејнера на портове 8080, 8081 и 8082 вашег хоста. Након покретања контејнера са прокси портовима, моћи ћете да им приступите преко наведених хост портова.