উত্তর:
docker.sockডোনার ডিমন শুনছে যে ইউনিক্স সকেট। এটি ডকার এপিআইয়ের প্রধান প্রবেশ পয়েন্ট। এটি টিসিপি সকেটও হতে পারে তবে সুরক্ষার কারণে ডিকার্ট ইউনিক্স সকেট ব্যবহারের জন্য ডিফল্ট থাকে।
ডিকার ক্লায়েন্ট ক্লায়েন্ট ডিফল্টভাবে ডকার কমান্ডগুলি কার্যকর করতে এই সকেটটি ব্যবহার করে। আপনি এই সেটিংসও ওভাররাইড করতে পারেন।
আপনার কোনও ধারকের ভিতরে ডকার সকেট মাউন্ট করার জন্য বিভিন্ন কারণ থাকতে পারে। অন্য ধারক থেকে নতুন পাত্রে চালু করার মতো Like অথবা অটো পরিষেবা আবিষ্কার এবং লগিংয়ের উদ্দেশ্যে। এটি আক্রমণ পৃষ্ঠের বৃদ্ধি করে তাই আপনার যদি সাবধান হওয়া উচিত যদি আপনি কোনও ধারকের ভিতরে ডকার সকেট মাউন্ট করেন তবে সেই ধারকটির ভিতরে বিশ্বস্ত কোডগুলি চলমান আছে অন্যথায় আপনি কেবল আপনার হোস্টের সাথে আপস করতে পারেন যা ডকার ডিমন চলমান রয়েছে, যেহেতু ডকার ডিফল্টরূপে সমস্ত ধারককে রুট হিসাবে চালু করে।
বেশিরভাগ ইনস্টলেশনতে ডকার সকেটের একটি ডকার গ্রুপ রয়েছে সুতরাং সেই গোষ্ঠীর মধ্যে থাকা ব্যবহারকারীরা রুট অনুমতি ছাড়াই ডকার সকেটের বিরুদ্ধে ডকার কমান্ড চালাতে পারেন তবে প্রকৃত ডকার পাত্রে এখনও রুটের অনুমতি পাওয়া যায় কারণ ডকার ডিমন কার্যকরভাবে রুট হিসাবে চালিত হয় (নাম-স্পেস এবং সিগ্রুপগুলিতে অ্যাক্সেস করার জন্য এটির রুট অনুমতি প্রয়োজন) ।
আমি আশা করি এটি আপনার প্রশ্নের উত্তর দিয়েছে।
আরও তথ্য: https://docs.docker.com/engine/references/commandline/dockerd/# উদাহরণ
/var/run/docker.sockভিতরে মাউন্ট করা একটি সাধারণ, তবুও খুব বিপজ্জনক অনুশীলন। ডকার পরিষেবাটি চালাতে পারে এমন কোনও আদেশ কার্যকর করতে পারে কোনও আক্রমণকারী, যা ডকর পরিষেবাটি রুট হিসাবে চলার সাথে সাথে পুরো হোস্ট সিস্টেমে অ্যাক্সেস সরবরাহ করে। "
আমি এটি কিছুটা দেরিতে জানি তবে আমি আশা করি আমার উত্তরটি এতগুলি অন্তর্দৃষ্টি দেবে
প্রথমে ইউনিক্স সকেট সম্পর্কে কথা বলি
সকেট শব্দটি সাধারণত আইপি সকেটকে বোঝায়। এগুলিই বন্দরের (এবং ঠিকানা) আবদ্ধ, আমরা টিসিপি অনুরোধগুলি প্রেরণ করি এবং এর থেকে প্রতিক্রিয়া পাই।
আর এক ধরণের সকেট হ'ল ইউনিক্স সকেট, এই সকেটগুলি আইপিসি (ইন্টারপ্রেসেস যোগাযোগ) জন্য ব্যবহৃত হয় । তাদের ইউনিক্স ডোমেন সকেট ( ইউডিএস ) বলা হয়। ইউনিক্স সকেটগুলি যোগাযোগের জন্য স্থানীয় ফাইল সিস্টেম ব্যবহার করে, আইপি সকেটগুলি নেটওয়ার্কটি ব্যবহার করে।
Docker ডেমন সকেট আছে তিনটি ভিন্ন প্রকারের মাধ্যমে Docker ইঞ্জিন API অনুরোধের জন্য শোনার জন্য: unix, tcp, and fd।
ডিফল্টরূপে, /var/run/docker.sock এ একটি ইউনিক্স ডোমেন সকেট (বা আইপিসি সকেট) তৈরি করা হয়
আসুন কয়েকটি লাইভ উদাহরণ দেখুন :
ডোর সার্ভার এই সকেটটি REST API শোনার জন্য ব্যবহার করে এবং ক্লায়েন্টরা সকেটটি সার্ভারে API অনুরোধগুলি প্রেরণ করতে ব্যবহার করে।
কার্ল
--unix-socketপতাকা মাধ্যমে একটি ইউনিক্স সকেটের সাথে কথা বলতে পারে । যেহেতু ডকার সার্ভার এপিআই REST হিসাবে প্রকাশিত হয়েছে, তাই আমাদের HTTP- র মাধ্যমে কমান্ড প্রেরণ করা প্রয়োজন। এছাড়াও, এই সার্ভারটি স্থানীয় হওয়ার কারণে (ফাইল সিস্টেমটি মনে রাখবেন), আমরা URL- এ কোনও হোস্টনাম পাস করতে পারি (বা লোকালহোস্টের সাথে লেগে থাকি, এটিও কার্যকর হবে!) Fine সার্ভারটি হোস্ট-নেম, কেবল পথের বিষয়ে চিন্তা করে না।
curl --unix-socket /var/run/docker.sock http://localhost/images/json | jq
[
{
"Containers": -1,
"Created": 1525888860,
"Id": "sha256:24a77bfbb9ee3aeef9e24766ad6e9fa57f85c67596f154e8916e4f314067e149",
"Labels": null,
"ParentId": "",
"RepoDigests": [
"postgres@sha256:b06cdddba62f1550a1c674270814e72eaa8734d95912019b4ddc288b650ad67d"
],
"RepoTags": null,
"SharedSize": -1,
"Size": 39507096,
"VirtualSize": 39507096
}
]
কিছু আদেশ :
আপনি ডকার.সক দিয়ে প্রচুর স্টাফ করতে পারেন
এই সুন্দর নিবন্ধটি দেখুন