How to publish ports in docker

  • فرض کنید که یک کانتینر 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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *