যে কেউ ডকার.সককে ব্যাখ্যা করতে পারে


130

আমি মাউন্ট জন্য প্রকৃত কারণ বুঝতে চেষ্টা করছি docker.sockমধ্যে docker-compose.ymlফাইল। এটি কি স্বয়ংক্রিয় আবিষ্কারের জন্য?

volumes:
  - /var/run/docker.sock:/var/run/docker.sock

উত্তর:


130

docker.sockডোনার ডিমন শুনছে যে ইউনিক্স সকেট। এটি ডকার এপিআইয়ের প্রধান প্রবেশ পয়েন্ট। এটি টিসিপি সকেটও হতে পারে তবে সুরক্ষার কারণে ডিকার্ট ইউনিক্স সকেট ব্যবহারের জন্য ডিফল্ট থাকে।

ডিকার ক্লায়েন্ট ক্লায়েন্ট ডিফল্টভাবে ডকার কমান্ডগুলি কার্যকর করতে এই সকেটটি ব্যবহার করে। আপনি এই সেটিংসও ওভাররাইড করতে পারেন।

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

বেশিরভাগ ইনস্টলেশনতে ডকার সকেটের একটি ডকার গ্রুপ রয়েছে সুতরাং সেই গোষ্ঠীর মধ্যে থাকা ব্যবহারকারীরা রুট অনুমতি ছাড়াই ডকার সকেটের বিরুদ্ধে ডকার কমান্ড চালাতে পারেন তবে প্রকৃত ডকার পাত্রে এখনও রুটের অনুমতি পাওয়া যায় কারণ ডকার ডিমন কার্যকরভাবে রুট হিসাবে চালিত হয় (নাম-স্পেস এবং সিগ্রুপগুলিতে অ্যাক্সেস করার জন্য এটির রুট অনুমতি প্রয়োজন) ।

আমি আশা করি এটি আপনার প্রশ্নের উত্তর দিয়েছে।

আরও তথ্য: https://docs.docker.com/engine/references/commandline/dockerd/# উদাহরণ


1
ছিন্ন সুত্র. প্রত্যাশিত ব্যক্তির সাথে সম্ভবত একই রকম তথ্য হ'ল: ডকস.ডোকার.ইনজিন
বোরজা বলিলা

7
@ বোয়েনক্স প্রদত্ত সতর্কতাগুলির পাশাপাশি ডকার সিকিউরিটি সেরা-অনুশীলনের নিবন্ধে আপনি আরও তথ্য পেতে পারেন । এই বিষয়ে তারা বলে: "ধারকটির /var/run/docker.sockভিতরে মাউন্ট করা একটি সাধারণ, তবুও খুব বিপজ্জনক অনুশীলন। ডকার পরিষেবাটি চালাতে পারে এমন কোনও আদেশ কার্যকর করতে পারে কোনও আক্রমণকারী, যা ডকর পরিষেবাটি রুট হিসাবে চলার সাথে সাথে পুরো হোস্ট সিস্টেমে অ্যাক্সেস সরবরাহ করে। "
আর্নল্ড শ্রিজার

36

আমি এটি কিছুটা দেরিতে জানি তবে আমি আশা করি আমার উত্তরটি এতগুলি অন্তর্দৃষ্টি দেবে

প্রথমে ইউনিক্স সকেট সম্পর্কে কথা বলি

সকেট শব্দটি সাধারণত আইপি সকেটকে বোঝায়। এগুলিই বন্দরের (এবং ঠিকানা) আবদ্ধ, আমরা টিসিপি অনুরোধগুলি প্রেরণ করি এবং এর থেকে প্রতিক্রিয়া পাই।

আর এক ধরণের সকেট হ'ল ইউনিক্স সকেট, এই সকেটগুলি আইপিসি (ইন্টারপ্রেসেস যোগাযোগ) জন্য ব্যবহৃত হয় । তাদের ইউনিক্স ডোমেন সকেট ( ইউডিএস ) বলা হয়। ইউনিক্স সকেটগুলি যোগাযোগের জন্য স্থানীয় ফাইল সিস্টেম ব্যবহার করে, আইপি সকেটগুলি নেটওয়ার্কটি ব্যবহার করে।

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
  }
]

কিছু আদেশ :

আপনি ডকার.সক দিয়ে প্রচুর স্টাফ করতে পারেন

এই সুন্দর নিবন্ধটি দেখুন


6

এটি মূলত ধারকটিতে হোস্ট ডকার ডেমনকে প্রকাশ করে। যাতে আপনি হোস্টে those কমান্ডগুলিকে সরাসরি কল করার মতো চিত্র / পাত্রে শুরু / থামানো / নির্মাণ করতে আপনার ধারক থেকে ডকার এপিআই / ক্লায়েন্টের কাছে যেতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.