মূলত আমার ডকার কনটেইনারটি বাহ্যিক ইন্টারনেটে পৌঁছতে সক্ষম হয়েছিল (এটি একটি ডোকর পরিষেবা / একটি আমাজন ইসি 2 তে চলমান ধারক)।
যেহেতু আমার অ্যাপ্লিকেশনটি একটি এআইপিআই, তাই আমি আমার আইপি টেবিলগুলি আপডেট করে আমার ট্র্যাফিক ৮০ থেকে পোর্টে যে সমস্ত ট্র্যাফিক আমার এপিআই (ডকারে চলমান) ছিল তাতে পোর্টে যাওয়ার জন্য আমার কনটেইনারটি তৈরি করে (এটি প্রয়োজনীয় সমস্ত প্যাকেজগুলি টানতে সফল হয়েছিল) followed শুনছি।
তারপরে, পরে যখন আমি ধারকটি পুনর্নির্মাণের চেষ্টা করি তখন এটি ব্যর্থ হয়। অনেক লড়াইয়ের পরে আমি আবিষ্কার করেছি যে আমার পূর্ববর্তী পদক্ষেপটি (আইপিটিবেল পোর্ট ফরওয়ার্ডিং নিয়ম নির্ধারণ করে) ডকারের বাহ্যিক নেটওয়ার্কিংয়ের সামর্থ্যকে বিশৃঙ্খলা করেছে।
সমাধান: আপনার আইপিটিবেল পরিষেবাটি বন্ধ করুন:
sudo service iptables stop
ডকার ডেমন পুনরায় চালু করুন:
sudo service docker restart
তারপরে, আপনার ধারকটি পুনর্নির্মাণের চেষ্টা করুন। আশাকরি এটা সাহায্য করবে.
অনুসরণ করুন
আমি সম্পূর্ণরূপে উপেক্ষা করেছিলাম যে আইপি টেবিলগুলির সাথে আগত ট্র্যাফিক 80 পোর্টে ডকারে চালিত এপিআই চলছে এমন বন্দরে ফরোয়ার্ড করার জন্য আমার কোনও ঝামেলা করার দরকার নেই। পরিবর্তে, আমি পোর্টটি মাত্র 80 বন্দরটি বন্দরের কাছে ডকারে থাকা এপিআই চালু ছিল:
docker run -d -p 80:<api_port> <image>:<tag> <command to start api>
sysctl -w net.ipv4.ip_forward=1(সেন্টোস on এ)