ডকার: একটি নির্দিষ্ট ডিরেক্টরিতে একটি অবিরাম ভলিউম তৈরি করুন


16

আমাকে ডকারের জন্য একটি অবিরাম ভলিউম তৈরি করতে হবে । ভলিউমটি অবশ্যই নামকরণ extra-addonsএবং এর মধ্যে অবস্থিত থাকতে হবে /mnt/

আমি এই আদেশটি চালাচ্ছি:

sudo docker volume create /mnt/extra-addons

আমি এই ত্রুটি বার্তা পেয়েছি:

Error response from daemon: create /mnt/extra-addons: "/mnt/extra-addons" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path

মনে রাখবেন যে আমি যখন সহজভাবে চালাই sudo docker volume create extra-addons:, আমি এই সমস্যার মুখোমুখি হই না তবে যখন আমি প্রশ্নটি ব্যবহার করে ভলিউমটি পরীক্ষা করি তখন আমি sudo docker inspect extra-addonsএটি দেখতে চাই না এমন জায়গায় অবস্থিত দেখছি:

[
    {
        "CreatedAt": "2018-04-21T14:40:25+03:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/extra-addons/_data",
        "Name": "extra-addons",
        "Options": {},
        "Scope": "local"
    }
]

মানে আমি এর চেয়ে ভলিউমটি দেখতে চাই: /mnt/extra-addons

কোন ধারণা?

উত্তর:


13

আমি সমাধানটি খুঁজে পেয়েছি:

আমাকে লোকাল-সিস্ট প্লাগইন ইনস্টল করতে হয়েছিল ।

মাউন্ট পয়েন্টে তৈরি করতে আমাকে ভলিউমটি মাউন্ট করতে হয়েছিল:

 sudo docker volume create -d local-persist -o mountpoint=/mnt/ --name=extra-addons

আমি যা প্রত্যাশা করেছি তা পেয়েছি কিনা তা পরীক্ষা করুন:

sudo docker volume inspect extra-addons

ফলাফল:

[
    {
        "CreatedAt": "0001-01-01T00:00:00Z",
        "Driver": "local-persist",
        "Labels": {},
        "Mountpoint": "/mnt/",
        "Name": "extra-addons",
        "Options": {
            "mountpoint": "/mnt/"
        },
        "Scope": "local"
    }
]

এটিই আমি খুঁজছিলাম।


6

আপনি যদি আপনার ডকারে কোনও প্লাগইন ইনস্টল করতে না চান তবে আমি আপনার ভলিউমের জন্য একটি প্রতীকী লিঙ্ক তৈরি করার পরামর্শ দেব:

$ docker volume create <myVolume>
$ docker volume inspect <myVolume> 
[
    {
        "CreatedAt": "0001-01-01T00:00:00Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/<myVolume>/_data",
        "Name": "<myVolume>",
        "Options": {},
        "Scope": "local"
    }
]
$ mkdir /mnt/<myVolume>
# if you already have data in your volume, you should copy it to `/mnt/<myVolume>` now
$ sudo rm -rf /var/lib/docker/volumes/<myVolume>/_data
$ sudo ln -s /mnt/<myVolume> /var/lib/docker/volumes/<myVolume>/_data

এখন যথারীতি আপনার ভলিউমটি ব্যবহার করতে নির্দ্বিধায় (আপনার সমস্ত ডেটা /mntযেমনটি আপনি চান তেমনভাবে )


ডকার পরিচালিত ভলিউমগুলি মুছে ফেলা ভাল ধারণা না think হোস্ট ডিরেক্টরিটি ডকারে মাউন্ট করার পরিবর্তে মাউন্ট ব্যবহার করুন।
লেক্স

4

আমার মনে হয় না local-persistচালককে ব্যবহার করার উপায়। এটি কিছুক্ষণের মধ্যে আপডেট করা হয়নি। আপনি ডকার মাউন্ট ব্যবহার করে একটি স্থানীয় (হোস্ট) ডিরেক্টরিটিকে ডকার পাত্রে স্থাপন করতে পারেন।

নিম্নলিখিতটি চালানো আমার ডেস্কটপে ম্যাপ করা একটি মাউন্টড ডিরেক্টরি সহ একটি নতুন ধারক তৈরি করে।

mkdir extra-addons
docker run -it -v /Users/me/Desktop/extra-addons:/mnt/extra-addons busybox /bin/sh
ls

আপনি এখন mntআপনার ধারকটির মূলের একটি ফোল্ডার দেখতে পাচ্ছেন ।

bin dev etc home mnt proc root sys tmp usr var

পাত্রে একটি নতুন ফাইল তৈরি করা হচ্ছে

touch /mnt/extra-addons/test.txt

আমার হোস্ট মেশিনে একটি test.txt ফাইল তৈরি করে। নির্দিষ্ট পথে। এটি এখন দ্বি-পন্থায় ভাগ / ভাগ করে নেওয়া ফোল্ডারটি পড়ুন। একাধিক পাত্রে একই ফোল্ডারটি মাউন্ট করা যায়। আপনি একবার নিজের ধারক / গুলি বন্ধ করে দিলে এটি অবিরত থাকবে।

এখানে চিত্র বর্ণনা লিখুন


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