ডকার, খালি মাত্র পঠনযোগ্য হিসাবে


106

আমি ডকারের সাথে কাজ করছি, এবং আমি একটি পরিবর্তনশীল ফোল্ডার মাউন্ট করতে চাই যা অনেকগুলি পরিবর্তন করে (তাই প্রতিটি মৃত্যুদণ্ডের জন্য আমাকে একটি ডকার চিত্র তৈরি করতে হবে না, যা খুব ব্যয়বহুল হবে), তবে আমি চাই যে ফোল্ডারটি কেবল পঠনযোগ্য হয় । অন্য কারও কাছে ফোল্ডারের মালিক পরিবর্তন করা কাজ করে। যাইহোক, অ্যাক্সেস chownপ্রয়োজন root, যা আমি কোনও অ্যাপ্লিকেশনটিতে প্রকাশ না করা পছন্দ করি।

আমি যখন -vমাউন্টে পতাকা ব্যবহার করি , এটি আমি যেই ব্যবহারকারীর নাম দিই তা দেয়, আমি ডকার চিত্রের অভ্যন্তরে একটি অ-রুট ব্যবহারকারী তৈরি করেছি, তবে, ভলিউমের সমস্ত ফাইলই যে ব্যবহারকারী হিসাবে ডকার দৌড়েছিল, ব্যবহারকারী হিসাবে পরিবর্তিত হয় I কমান্ড লাইন থেকে দিন, যাতে আমি কেবল পঠনযোগ্য ফাইল এবং ফোল্ডারগুলি তৈরি করতে পারি না। আমি কীভাবে এটি প্রতিরোধ করতে পারি?

আমি আরও যোগ করেছি mustafa ALL=(docker) NOPASSWD: /usr/bin/docker, তাই আমি টার্মিনালের মাধ্যমে অন্য কোনও ব্যবহারকারীতে পরিবর্তন করতে পারি, তবে তবুও, ফাইলগুলিতে আমার ব্যবহারকারীর জন্য অনুমতি রয়েছে।


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

উত্তর:


170

আপনি নির্দিষ্ট করতে পারেন যে একটি ভলিউম-কেবল পঠন করা উচিত সংযোজন করে :roকরতে -vসুইচ:

docker run -v volume-name:/path/in/container:ro my/image

নোট করুন যে ফোল্ডারটি কেবল পাত্রে কেবল পঠনযোগ্য এবং হোস্টে পঠনযোগ্য।

2018 সম্পাদনা করুন

ব্যবহার ভলিউম ডকুমেন্টেশন অনুসারে , --mountস্যুইচটি ব্যবহার করে ভলিউমগুলি মাউন্ট করার আরও একটি উপায় রয়েছে । কেবলমাত্র পঠনযোগ্য দিয়ে এটি কীভাবে ব্যবহার করতে হবে তা এখানে:

$ docker run --mount source=volume-name,destination=/path/in/container,readonly my/image

Docker-রচনা

এখানে কেবল পঠনযোগ্য ধারকগুলি কীভাবে নির্দিষ্ট করবেন তা এখানে একটি উদাহরণ docker-compose:

version: "3"
services:
  redis:
    image: redis:alpine
    read_only: true

8
সেখানে কি লেখার অনুমতি আছে, তবে সেগুলি হোস্টের কাছে ফেরত লিখবেন না? এটি দুর্দান্ত হবে
রে ফস

9
মনে হচ্ছে আপনি কোনও ভলিউম নির্দিষ্ট করতে চান না।
Alp

1
বাছাই করুন ... আমি ঠিক ডকফিলিল সিপিওয়াই ব্যবহার করতে বা docker cpএকটি শাট অফ পাত্রে পৃথক কমান্ড ব্যবহার করতে একটি চিত্র তৈরি করতে চাই না ।
রায় ফস

5
আপনি যেখানে আরও বিশদ সরবরাহ এবং এটি এখানে লিঙ্ক করতে পারে তার জন্য আপনি একটি নতুন প্রশ্ন তৈরি করতে পারেন?
Alp

আপনি ডকার redis:alpine:ro
কম্পোটের

23

Docker-রচনা

এখানে কেবল পঠনযোগ্য ভলিউম নির্দিষ্ট করার জন্য একটি সঠিক উপায় docker-compose:

version: "3.2" # Use version 3.2 or above
services:
  my_service:
    image: my:image
    volumes:
      - type: volume
        source: volume-name
        target: /path/in/container
        read_only: true
volumes:
  volume-name:

https://docs.docker.com/compose/compose-file/#long-syntax-3


2
এটি প্রকৃতপক্ষে যথাযথ, তবে এখানে যা কেবলমাত্র পঠনযোগ্য তা ভলিউম, কোনও ধারক নয়।
Ван

এটি কেবলমাত্র আমার জন্য version: "3.2"- ধন্যবাদ :)
ডেভি

"সংস্করণ 3.2 ফাইলের ফর্ম্যাটে যুক্ত হয়েছে।" হ্যাঁ
rybo111

3
আপনি এর - './my-file.txt:/container-readonly-file.txt:ro'অধীনেও করতে পারেন volumes- :roশেষে নোট করুন ।
rybo111
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.