কম্পিউটার টিউটোরিয়াল

LXD-এর ভিতরে ডকার চালানো: ধাপে ধাপে গাইড

আর্কেন উইক্লির স্বাগতম। আজ আমি আপনাদের সাথে একটি সমস্যা নিয়ে কথা বলতে চাই যা আপনি সম্ভবত কখনো দেখবেন না, কিন্তু যদি দেখেন, তবে আপনি একটি দ্রুত এবং হ্যাঞ্জি সমাধান চাইবেন। হাতের টুল: LXD কন্টেইনার, ডকার। মিশন: দুটো একসাথে চালাতে চান। আরও স্পষ্টভাবে, একটি LXD কন্টেইনার স্পন করতে চান, এবং তার ভিতরে একটি ডকার কন্টেইনার শুরু করতে চান। কেন? কেন না।

তখন আপনার সমস্যাটি হলো: ডকার এক্সিকিউশন নিচের এরর দিয়ে ফেইল করে: docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "proc" to rootfs at "/proc" caused: permission denied: unknown. অনেক টেক্সট আছে। ডিবাগ করি, কি?

সমস্যা বিস্তারিত

সাধারণত, ডকার কন্টেইনার চালালে `/proc` অ্যাক্সেসে কোনো সমস্যা হওয়া উচিত নয়। কিন্তু উপরের এরর আমাদের বলে দিচ্ছে এটি সম্ভব নয়। এটি একটি বিভ্রান্তিকর মেসেজ, কারণ এতে প্রচুর তথ্য আছে, যা ভুল পথে নিয়ে যায়। সত্যি, এই ইস্যুর জন্য টনটা কারণ থাকতে পারে। আমার কেসে, সেটআপ ছিল ব্যান্ড নিউ, ভ্যানিলা, কোনো ক্রেজি কাস্টমাইজেশন ছাড়া। অন্য কোনো এরর ছিল না, এবং সব প্র্যাক্টিক্যাল উদ্দেশ্যে, ডকার সঠিকভাবে ইনস্টল ও কনফিগার্ড ছিল।

তখন আমি ভাবলাম, আমি LXD কীভাবে কাজ করে সেটি দেখতে চাই, এবং সম্ভবত এটি আমাকে বুঝতে সাহায্য করবে কেন আমি এই ইস্যু দেখছি। সত্যিই, আমি দ্রুত একটি পুরানো, সেমি-ডকুমেন্টেড আর্টিকেল পেলাম LXD-র সম্পর্কে, যা পরিস্থিতিটি ব্যাখ্যা করে। নিরাপত্তার কারণে, কন্টেইনারها `/proc` এবং `/sys`-এ আনসেফ الطرقে অ্যাক্সেস করার অনুমতি পায় না। এর একটি ওয়ার্কঅরাউন্ড—সংশ্লিষ্ট নিরাপত্তা ইমপ্লিকেশনসহ—হলো এমন অ্যাক্সেস অনুমতি দেওয়া।

সমাধান

আপনাকে যা করতে হবে সেটি হলো প্রভাবিত কন্টেইনারের জন্য নেস্টিং অনুমতি দেওয়া।

lxc launch "image" "container name" -c security.nesting=true

যদি কন্টেইনার ইতিমধ্যে থাকে, তবে শুরু করার আগে:

lxc config set "container name" security.nesting true

এবং তারপর কন্টেইনার শুরু করুন:

lxc start "container name"

যদি এটি ইতিমধ্যে চলছে, কন্টেইনার বন্ধ করুন, পলিসি সেট করুন, তারপর আবার শুরু করুন। অপারেশনটি নন-ডিস্ট্রাক্টিভ, তাই আপনি যদি কন্টেইনার স্পন করার পর সমস্যা দেখেন, তবে আপনি সেটির ভিতরের কোনো কাজ বা ডেটা হারাবেন না। সেটিংটি সম্পূর্ণ রিভার্সিবল। এবং আমাদের কাজ এখানেই শেষ, ফেলাস।

উপসংহার

একটু আকর্ষণীয় যে আমি এই ইস্যুটি এখনও এনকাউন্টার করলাম যা প্রায় পাঁচ বছর ধরে আছে। অথবা যে এত সব লোক এই সমস্যায় পড়ছে, কিন্তু তথ্য কুয়াশা এবং ছিটকে পড়া। খুব, যদি আপনি নেস্টেড কন্টেইনার যান, তবে LXD-এ প্রভাবিত কন্টেইনারের সিকিউরিটি পলিসি এডিট করুন। এটি একটি আপেক্ষিকভাবে সহজ ট্রিক। এর বাইরেও অনেক কিছু আছে, যেমন প্রিভিলেজড এবং আনপ্রিভিলেজড কন্টেইনার কনসেপ্ট, এবং অন্যান্য নিরাপত্তা বিবেচনা। কিন্তু আপনার কাজ যদি নিরাপত্তা সম্পর্কিত না হয়, তবে এই পরিবর্তনের কোনো ডাউনসাইড নেই।

বेहतर ডকুমেন্টেশন সাহায্য করত। কম ক্রিপ্টিক এরর মেসেজও। মিন্টিম, চেষ্টা করুন চিন্তা করার জন্য আপনার সেটআপে আপনি যা করতে চাচ্ছেন সেটির জন্য পারমিশন এরর কেন হতে পারে, এবং এটি আপনাকে সঠিক দিকে নিয়ে যাবে। একবার আপনি জানতে পারেন কীভাবে প্রোবলেম স্টেটমেন্ট ফ্রেম করতে হয়, আপনি ৮০% শেষ। এখন আপনি কন্টেইনারের ভিতর কন্টেইনার করতে পারেন, পুরো: "Yo Dawn, I herd u like containers, so we put containers in your containers ... Inception।" বোনাস: চেষ্টা করুন দেখুন কত লেভেল নেস্টিং করতে পারেন সৃষ্টি বিমুখ হওয়ার আগে।

চিয়ার্স।

  1. uBlock Origin: কাস্টম ফিল্টারস ও এক্সপার্ট গাইড

  2. ডকার ডেস্কটপ: স্মুথ কন্টেইনার ম্যানেজমেন্টের জন্য সহজ GUI

  3. ভার্চুয়ালবক্স NAT নেটওয়ার্কিং কনফিগারেশন একাধিক VM-এর জন্য

  4. VirtualBox মাস্টার করুন: ডিস্ক ইমেজ ক্লোনিং-র ধাপে ধাপে গাইড