عدم دسترسی به کانتینر داکر در مرورگر - mac

docker
macos

#41

شهریار شماره منو داره توی watsapp اد کنید که بتونم بهتر پاسخ بدم


#42

چون پورت ۸۰ به ۸۰ localhost فرستاده شده. الان اون ip کجاست؟
چرا ۱۲۷.۰.۰.۱ نیست؟


#43

اون برای لوکال هاست معمولی خودم هست روی سیستمم

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1         localhost
fe80::1%lo0 localhost
172.18.0.3   wedding.com

کل هاستم اینه


#44

متوجه نمیشم شهریار، الان از کجا میخوای به container دسترسی داشته باشی؟
اینو امتهان کن

127.0.0.1 localhost example.com

چون تیتر موضوع در مورد دسترسی به کانتینر در مرورگر روی پورت ۸۰ هست


#45

بعد پس اون hosts دیگه کجا بود؟


#46

کاری که روی لینوکس انجام دادم به این صورت بود
بعد از اینکه سرویس ها رو با داکر کمپوز بالا آوردم
اومدم ip‌کانتینر رو گرفتم و داخل فایل

/etc/host

به این صورت قرار دادم

172.20.2.0  wedding.com

و بعد توی تنظیمات انجینکس هم دامنه رو معرفی کرده بودم . و کلید هم براش ساخته بودم . کلید ها رو در مرورگر وارد کردم تا معتبر شناخته بشه و مشکلی نداشتم .
علت اینکه از 127.0.0.1 استفاده نکردم و به جاش از ip کانتینر استفاده کرده بودم این بود که روی سرور هم به همین صورت بوده و مشکلی نداشتم . و از بیرون داکر من پینگ کانیتنر مورد نظر رو دارم

ولی علت اینکه در مک کار نکرده به خاطر این هست که ما دسترسی مستقیم به ip کانتینر نداریم . سرچ هم زدم بقیه هم به این صورت مشکل داشتن . امکانش هست که به صورت local در مرورگر بالا بیاد ولی هدف این هست که بر اساس نام دامنه در مرورگر بالا بیاد ولی خب اون localhost رو که شما دادین رو تست نکردم هنوز


#47

پس اون ip کانتینر هست


#48

این فرمان در ترمینال چی میگه؟

nslookup 172.20.2.0


#49

من بر اساس آخرین آیپی کانتینر زدم این شده

➜ nslookup 172.18.0.3                        
Server:		192.168.1.1
Address:	192.168.1.1#53

** server can't find 3.0.18.172.in-addr.arpa: SERVFAIL

#50

البته این ip کانتینر من بود . هر بار که داکر رو دوباره راه اندازی میکنم . عوض میشه


#51

مشکل ما اینجا عنوان شده


طبق این جلو بریم فکر کنم حل بشه


#52

برای خودتون honeypot درست کردین و گیج کننده شده :blush:
چند تا راه هست,

1- فروارد کردن port مثلا 8080 به 80 روی localhost- و اما کانتینر هم باد درست تنظیم بشه
2- StaticIP برای container ها و ایجاد subnet ها در docker network.
3- proxy در مک

من میرم سراغ اولی


#53

به نظرم nginx رو از کانتینر خارج کنیم و برروی هاست نصب کنیم . بعد پورت 4000 رو به 80 فروارد کنیم و بعد از nginx بعنوان پروکسی معکوس استفاده بکنیم
یا اینکه ip داکر ماشین رو درست بکنیم تا بتونیم از هاست به داکر ماشین وصل بشیم با ip و دیگه نیاز به خارج کردن nginx از کانتینر نداشته باشیم .

ولی روش دوم هم باز جواب نمیده چون کل داکر داخل یک ماشین مجازی هست و ما از هاست به ماشین مجازی ارتباط نداریم .

از داخل کانتینر با curl تست کردیم و جواب گرفتیم ولی باید بتونیم با هاست ارتباط برقرار بکنیم تا مشکل حل بشه

روش سوم هم باز برمیگرده به اینکه ارتباط کانتینر با هاست برقرار باشه یعنی از آدرس localhost روی مرورگر ما بتونیم چیزی رو بالا بیاریم و ببینیم ولی همینم هم امکان پذیر نیست


#54

فقط کافیه port ها به localhost فرستاده بشه, همین!


#55

زمانیکه ما از

ports:
      - "80:80"
      - "443:443"

استفاده نکرده بودیم به این صورت بود

وقتی استفاده کردیم

ول باز هم ارتباط برقرار نشد
Screenshot_2018-11-28_02-07-00


#56

یعنی با http://localhost نشد؟
فکر کنم اشتباه می کنید


#57

با این آدرس تست نکردم چون تنظیمات انجینکس برای server_name روی لوکال نیست روی یه دامنه هست

ولی چون server_name برای wedding.com ست شده بود و توی فایل hosts هم به همین صورت بود اون رو تست کردم که چیزی بالا نیومده بود .

باید فردا یه تست بکنم . قاعدات مشکل به خاطر تنظیمات هم باید باشه .


#58

کلا فقط بخاطر تنظیمات نیست، شما از یک روش نا مناسب در لینوکس استفاده کردین که شانسی جواب داد ولی حالا توی مک کار نمیکنه، باید پورت منتشر بشه و از localhost دسترسی پیدا کنید، مگر اینکه static ip روی وگرنت داشته باشید. اما کلا داکر برای کاری که مد نظرتون هست مناسب نیست، یعنی هم روش نا مناسب و هم ابزار نامناسب.
آخیش!!! دلم خنک شد🤗

درضمن در docker network هم میتونید subnet تعریف کنید که بازم مشکل شما رو حل میکنه. البته بازم نمیدونم دسترسی چطوری میشه.


#59

روشی که روی لینوکس انجام شده درسته و بدون مشکل داره کار میکنه علتش هم اینه که لینوکس مثل ویندوز و مک نیاز به ماشین مجازی نداره . روی سرور هم به خوبی داره کار میکنه .:wink:

این همون موضوعی هست که من چند بار بهش اشاره کردم دسترسی به ip ماشین مجازی . دسترسی به ip ماشین مجازی ندارم . مک هم ندارم بخوام تست بکنم وگرنه تا الان مشکل رو حل کرده بودم. :sunglasses:

استفاده از داکر بیشتر برای این بوده که محیط سرور کمی شبیه سازی بشه تا بیشتر با دستورات داکر کار کرده باشیم. وگرنه حرف شما درسته و استفاده از داکر مناسب نیست

subnet هم تست کردم نشده چون در اصل مشکل تفاوتی ایجاد نمیکنه اصلا من دسترسی مستقیم از بیرون به ماشین مجازی ندارم .


#60

کارکردن معنیش درست بودن نیست، به هر حال من سعی کردم توضیح بدم، تحقیق و انتخاب با شما.
مقاومت کردن خوبه اما به جاش. بازم اگر فکر کردی مشکل حل نمیشه میتونم بیشتر توضیح بدم.