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