- فرض کنید که یک کانتینر nginx دارید که روی پورت ۸۰ فعال است.
- در حالت عادی این پورت ۸۰ تنها بر روی کانتینر فعال است.
- برای این که پورت ۸۰ این کانتینر قابل استفاده در سیستم سرور ( بیرون از کانتینر ) باشه لازم است که اصطلاحا عمل publish کردن پورت صورت بگیره.
- این کار به دو مدل قابل انجام است :
- اول این که تنها پورت خاصی را به صورت دستی به پورتی خاص در سرور متصل کنیم.
- دوم این که تمام پورت های موجود و فعال در کانتینر را به پورت هایی رندوم در سرور متصل کنیم.
- در حالت اول از آپشن p- استفاده می شود.
- در حالت دوم از آپشن P- استفاده می شود.
- مثال : می خواهیم تمام پورت های کانتینر nginx به خارج ( از کانتینر ) متصل کنیم. برای این منظور :
|
1 |
# docker run -it -d --name=web-server -P nginx |
- برای مشاهده خروجی نتایج کافیست از دستور ps استفاده کنید.
|
1 |
# docker ps |
- در سیستم بنده پورت ۸۰ مربوط به کانتینر به پورت رندوم 32769 متصل شد.
- حال ممکن است بخواهیم تنها پورت ۸۰ به پورت ۸۰۸۰ سرور متصل شود. برای این منظور :
|
1 2 3 |
# docker run -it -d --name=web-server --hostname=nginx <span style="color: #ff0000;"><strong>-p 8080:80</strong></span> nginx:latest or # docker run -it -d --name=web-server --hostname=nginx <span style="color: #ff0000;"><strong>-p 127.0.0.1:8080:80</strong></span> nginx:latest |
- Tested in Docker version 19.03.2, build 6a30dfca03