ডকার ত্রুটি: ডিভাইসে কোনও স্থান বাকি নেই


329

আমি নিম্নলিখিত উপায়ে একটি ডেবিয়ান 7 মেশিনে ডকার ইনস্টল করেছি

$ echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ curl -sSL https://get.docker.com/ubuntu/ | sudo sh

এর পরে যখন আমি প্রথম কোনও চিত্র তৈরি করার চেষ্টা করেছি তখন নিম্নলিখিত ত্রুটিটি দিয়ে এটি ব্যর্থ হয়েছিল

 time="2015-06-02T14:26:37-04:00" level=info msg="[8] System error: write /sys/fs/cgroup/docker/01f5670fbee1f6687f58f3a943b1e1bdaec2630197fa4da1b19cc3db7e3d3883/cgroup.procs: no space left on device"

এখানে ডকার তথ্য

Containers: 2
Images: 21
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 25
Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 3.16.0-0.bpo.4-amd64
Operating System: Debian GNU/Linux 7 (wheezy)
CPUs: 2
 Total Memory: 15.7 GiB


WARNING: No memory limit support
 WARNING: No swap limit support

আমি কীভাবে স্মৃতি বাড়িয়ে তুলতে পারি? সিস্টেম কনফিগারেশনগুলি কোথায় সঞ্চয় করা হয়?

কাল এর পরামর্শ থেকে:

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


1
কখনও কখনও, আপনি আপনার স্টোরেজ ব্যাকএন্ডের উপর নির্ভর করে প্রতি ধারক আকারের সীমাতে আঘাত করতে পারেন । সেই লিঙ্কটি ডিভাইসম্যাপারের জন্য কীভাবে এটি ঠিক করতে হবে তা দেখায়।
jpaugh

4
আমার ডিস্কটি ইনোডের বাইরে চলে যাওয়ার পরে আমার এই ত্রুটি হয়েছিল। চেক করুনdf -ih
কেভিন স্মিথ

@ কেভিনস্মিথ এটি দেখানোর জন্য অনেক ধন্যবাদ। আমি এর আগে ইনোড সীমাগুলির তাত্পর্য সম্পর্কেও অবগত ছিলাম না।
ইয়োসফ্রো

উত্তর:


337

আমার একই ত্রুটি ছিল এবং এটি এইভাবে সমাধান করুন:

ঘ। ডকারে এতিম খণ্ডগুলি মুছুন, আপনি বিল্ট-ইন ডকার ভলিউম কমান্ডটি ব্যবহার করতে পারেন। বিল্ট-ইন কমান্ডটি / var / lib / ডকার / ভলিউমের কোনও ডিরেক্টরি মুছে ফেলে যা ভলিউম নয় তাই নিশ্চিত করে রাখুন যে আপনি সেখানে সংরক্ষণ করতে চান সেখানে কিছুই রাখেন নি।

আপনার কাছে কিছু তথ্য রাখতে চাইলে সতর্কতা এটিকে খুব সতর্কতা অবলম্বন করুন

পরিষ্কার কর:

$ docker volume rm $(docker volume ls -qf dangling=true)

অতিরিক্ত আদেশ:

ঝুলন্ত খণ্ডের তালিকা:

$ docker volume ls -qf dangling=true

সমস্ত খণ্ডের তালিকা:

$ docker volume ls

ঘ। সমস্ত অব্যবহৃত চিত্রগুলি সরানোর বিষয়েও বিবেচনা করুন।

প্রথমে <none>চিত্রগুলি থেকে মুক্তি পান (চিত্রগুলি নির্মাণের সময় সেগুলি কখনও কখনও উত্পন্ন হয় এবং যদি কোনও কারণে চিত্রের বিল্ডিং বাধাগ্রস্ত হয় তবে তারা সেখানে থাকে)।

এগুলি অপসারণ করতে আমি এখানে ব্যবহার করি একটি দুর্দান্ত স্ক্রিপ্ট

docker rmi $(docker images | grep '^<none>' | awk '{print $3}')

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

আপনি এগুলি সরাতে বা তাদের দ্বারা ম্যানুয়ালি মুছে ফেলার জন্য উপরের স্ক্রিপ্টটি সম্পাদনা করতে পারেন

docker rmi {image-name}


23
কেবল একটি নোট: একটি ম্যাকের উপর অর্ডিক কমান্ডগুলি অবশ্যই একক উদ্ধৃতি দ্বারা বেষ্টিত হবে, দ্বিগুণ নয়, অন্যথায় এটি কেবল উপেক্ষা করা হবে।
ndtreviv

2
আমি ম্যাক এ আছি এবং এটি আমার জন্য কাজ করছে !! কিন্তু পরামর্শের জন্য ধন্যবাদ.
মাহমুদ জাল্ট

2
কি অদ্ভুত! এটি আমার পক্ষে কাজ করে না। কেবল গ্রেপের মতো একই ফলাফলগুলি মুদ্রণ করে। আহ ভালো. অদ্ভুত জিনিস ঘটেছে।
ndtreviv

3
এই মুহুর্তে, আপনি চিত্রগুলির জন্য একই ফিল্টারটি ব্যবহার করতে পারেন। docker images -qf dangling=trueএবং অবশ্যই তাদের সাথে অপসারণ docker rmi $(docker images -qf dangling=true)
টাইলার জোন্স

3
আমি একটি ত্রুটি পেয়েছি: "ডকার ভলিউম আরএম" এর জন্য কমপক্ষে 1 টি আর্গুমেন্ট প্রয়োজন।
ইগোরগানাপলস্কি

330

আপডেট করুন
ডকার আরও উন্নত হওয়ার সাথে সাথে নীচের কমান্ডগুলি হ্যাক হয়ে উঠেছে। বর্তমান সেরা অনুশীলন হয়

docker system prune

এটি অপসারণ করবে:

- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all dangling images

নীচে হিসাবে, এটি পারমাণবিক।


আপনার সিস্টেম পরিষ্কার করতে প্রথমে পাত্রে সরান

$ docker rm $(docker ps -aq)

তারপরে ছবিগুলি সরান

$ docker rmi $(docker images -q)

এটি অবশ্যই পারমাণবিক এবং সমস্ত পাত্রে এবং সমস্ত চিত্র সরিয়ে দেবে। আপনি মাধ্যমে সময়ে তাদের এক অপসারণ করতে পারেন docker rm #CONTAINER_ID#এবং docker rmi #IMAGE_ID


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

4
"ডকার সিস্টেমের ছাঁটাই" আমার পক্ষে কাজ করেছিল।
ডোনাল্ড.এমসিএলিয়ান

2
সত্যই এটি আপ-ভোট দেওয়া উচিত এবং একটি উত্তর দেওয়া উচিত, কারণ এটি সঠিক পদ্ধতির। বিল্ডিংয়ের পরিবেশ দূষিত হয়ে গেছে এবং এখন এখানে হ্যাক হয়েছে এবং এটি অস্থায়ীভাবে সংশোধন করতে পারে তবে সঠিক পদ্ধতির হওয়া উচিতdocker system prune
zhrist

@ জাস্টিস্ট হা হা আমি সম্মত
জোশুয়া কুক

এটি কোনও সমাধান নয়, সমাধান নয়।
coler-j

70

আপনার / var তে ফাঁকা জায়গা রয়েছে কিনা তা পরীক্ষা করুন যেখানে ডকার ডিফল্টরূপে চিত্র ফাইলগুলি (/ var / lib / ডকারে) সঞ্চয় করে।

docker ps -aসমস্ত পাত্রে তালিকাভুক্ত (বন্ধ হওয়াগুলি সহ) ব্যবহার করে এবং docker rmসেগুলি সরাতে প্রথমে স্টাফ আপ করুন; তারপরে docker imagesআপনি সঞ্চিত সমস্ত চিত্রের তালিকা করতে এবং docker rmiসেগুলি সরাতে ব্যবহার করুন।

এরপরে ডকার ডেমোনে একটি -g বিকল্পের সাহায্যে বা বিকল্পটি সম্পাদনা করে /etc/default/dockerএবং সংযোজন করে স্টোরেজের অবস্থান পরিবর্তন করুন । "ডকার রানটাইম" এর অবস্থান নির্দিষ্ট করে যা মূলত সমস্ত চিত্র যা ডকার আপনাকে চিত্র তৈরি এবং পাত্রে চালানোর সময় তৈরি করে। প্রচুর জায়গার সাথে একটি অবস্থান চয়ন করুন যেহেতু ব্যবহৃত ডিস্কের স্থান সময়ের সাথে সাথে বাড়তে থাকবে। আপনি যদি সম্পাদনা করেন তবে পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে ডকার ডেমন পুনরায় চালু করতে হবে।-gDOCKER_OPTS-g/etc/default/docker

এখন আপনি একটি নতুন চিত্র তৈরি করতে সক্ষম হবেন (বা ডকার হাব থেকে একটি টানুন) এবং আপনাকে -g বিকল্পের সাহায্যে নির্দিষ্ট করা ডিরেক্টরিতে একগুচ্ছ ফাইল তৈরি হওয়া দেখতে হবে।


ধন্যবাদ কাল, আমি DOCKER_OPTS তে ডকুমেন্টেশন খুঁজে পেতে অক্ষম। -G বিকল্পটির অর্থ কী এবং এটিতে কী সেট করা উচিত? এছাড়াও ডকার / এউফস / এমএনটি-এর উপাদানগুলি মোছা যায়?
ব্যবহারকারী_মদা

ওহে রুবি, আমি মনে করি না যে আমি কখনই ডসকিইপিওপিটিএস সম্পর্কে একটি সত্যিকারের নথি পেয়েছি তবে ডকুমেন্টেশনে এখানে এবং সেখানে এমন কিছু জায়গা রয়েছে যা এডিট করার বিষয়ে কথা বলে। আমি সর্বাধিক সন্ধান করতে পারি ডকস.ডকার / ইনস্টলেশন / বুন্টুলিনাক্স / এর শেষে যেখানে এটি DOCKER_OPTS এ ডিএনএস সেটিংস সম্পাদনা করার বিষয়ে কথা বলে। DOCKER_OPTS- এ বিকল্পগুলি স্রেফ ডেমনকে দেওয়া হয়েছে, সুতরাং এর জন্য উল্লেখটি হ'ল ডকস.ডকার / রেফারেন্স / কম্যান্ডলাইন / ক্লি /# ডিমন । -g "ডকার রানটাইম"
কাল

এছাড়াও ডকার / এউফস / এমএনটি-এর উপাদানগুলি মোছা যায়?
ব্যবহারকারী_মদা

ম্যানুয়ালি সেই জিনিস মুছবেন না। পরিবর্তে কোনও পাত্রে (প্রস্থানিতগুলি সহ) এবং আপনার প্রয়োজনীয় চিত্রগুলি মুছুন। -G বিকল্পটি পরিবর্তন করার আগে আপনার এটি করা উচিত। ব্যবহার করুন docker ps -a(থেকে প্রস্থান বেশী সহ) সব পাত্রে তালিকা এবং তারপর docker rmতাদের সরিয়ে। ব্যবহার করুন docker imagesসব চিত্র তালিকা এবং তারপর docker rmiতাদের সরিয়ে। আশা করা যায় যে এটি (বা বেশিরভাগ জিনিস) পরিষ্কার করা উচিত।
কাল

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

37

যেমনটা ইতিমধ্যে উল্লেখিত,

docker system prune

সহায়তা করে তবে ডকার 17.06.1 এর সাথে এবং পরে অব্যবহৃত ভলিউমগুলি ছাঁটাই ছাড়াই। ডকার 17.06.1 থেকে, নিম্নলিখিত কমান্ডটি খণ্ডগুলিও ছাঁটাই করে:

docker system prune --volumes

ডকার ডকুমেন্টেশন থেকে: https://docs.docker.com/config/pruning/

ডকার সিস্টেম প্রুন কমান্ড হ'ল একটি শর্টকাট যা চিত্র, পাত্রে এবং নেটওয়ার্কগুলিকে ছাঁটাই করে। ডকার ১ 17.০6.০ এবং এর আগে, খণ্ডগুলিও ছাঁটাই করা হয় ডকার ১.0.০6.১ এবং এর উচ্চতর ক্ষেত্রে আপনাকে অবশ্যই ভলিউমগুলি ছাঁটাই করার জন্য ডকার সিস্টেমের ছাঁটাইয়ের জন্য --volums পতাকা নির্দিষ্ট করতে হবে।

আপনি যদি ভলিউমগুলি ছাঁটাই করতে চান এবং চিত্র এবং পাত্রে রাখতে চান:

docker volume prune

3
docker volume prune এখানকার অন্যান্য সমস্ত সমাধান কাজ করা বন্ধ করে দিলে আজ আমাকে সাহায্য করেছে।
এভিপ্রোগ্রামার

1
বিশাল সহায়তা - ত্রুটিটি ঠিক করার পাশাপাশি, এটি আমার হার্ড ড্রাইভে অনেকগুলি জিগ স্থান মুক্ত করেছে।
ম্যাট ব্রাউন

29

যদি এটি ডকারের কেবলমাত্র পরীক্ষামূলক ইনস্টলেশন (যেমন উত্পাদন নয়) এবং আপনি যদি পারমাণবিক সাফ করার বিষয়ে যত্নশীল না হন তবে আপনি এটি করতে পারেন:

সমস্ত পাত্রে পরিষ্কার করুন: docker ps -a | sed '1 d' | awk '{print $1}' | xargs -L1 docker rm

সমস্ত চিত্র পরিষ্কার করুন: docker images -a | sed '1 d' | awk '{print $3}' | xargs -L1 docker rmi -f

আবার আমি ডকারের বিকাশ করার সময় এটি আমার ইসি 2 উদাহরণগুলিতে ব্যবহার করি, কোনও গুরুতর QA বা উত্পাদনের পথে নয়। দুর্দান্ত জিনিসটি হ'ল যদি আপনার ডকস্পাইল (গুলি) থাকে তবে এটি পুনর্নির্মাণ করা সহজ এবং বাdocker pull


1
আমার বুট 2 ডকারে আমাকে কল করতে হয়েছিল docker images -a | sed '1 d' | awk '{print $3}' | xargs docker rmi -f। ওএস এক্স বিএসডি সংস্করণটি বুট 2 ডকারের সংস্করণের বিপরীতে বিকল্পটিকে xargsসমর্থন করে -L
অরলুক

1
আপনি docker ps -a -qপাঠ্য হেরফেরগুলি এড়ানোর জন্য ইত্যাদি ব্যবহার করতে পারেন , docker rm $(docker ps -a -q); docker rmi -f $(docker images -a -q)
যেমনটি

21

সমস্ত অব্যবহৃত কনটেইনার, ভলিউম, নেটওয়ার্ক এবং চিত্রগুলি একবারে সরাতে ( https://docs.docker.com/engine/references/commandline/system_prune/#related-commands ):

docker system prune -a -f --volumes

যদি এটি পর্যাপ্ত না হয় তবে কেউ প্রথমে চলমান পাত্রে সরিয়ে ফেলতে পারে:

docker rm -f $(docker ps -a -q)
docker system prune -a -f --volumes

ক্রমবর্ধমান / var / lib / ডকার বা আরও স্থান সহ অন্য কোনও স্থান ব্যবহার করাও এই ত্রুটি থেকে মুক্তি পাওয়ার জন্য একটি ভাল বিকল্প (দেখুন কীভাবে ডকার ইমেজ ইনস্টলেশন ডিরেক্টরিটি পরিবর্তন করবেন? )


docker system pruneভলিউম সরান না।
Bonifacio2

1
docker system prune -a -f --volumesভলিউম মুছে ফেলবে।
জিমসন ক্যাননথার জেমস

19

ম্যাকের জন্য ডকার

সুতরাং docker system pruneএবং docker system prune --volumesঅন্যান্য উত্তরে প্রস্তাব দেওয়া কিছু মুক্ত হয়েছে প্রতিটি সময় জায়গা , তবে শেষ পর্যন্ত প্রতিবারই আমি যে কোনও কিছু চালাই যাতে আমি ত্রুটি পাচ্ছিলাম।

মূল সমস্যাটি যা মুছে ফেলা হয়েছিল সেটি মুছে ফেলা হয়েছিলDocker.raw সমাধানটি ম্যাকের জন্য ডকার যে ফাইলটি সংরক্ষণের জন্য ব্যবহার এবং পুনরায় আরম্ভ করা।

সেই ফাইলটি সন্ধান করতে ম্যাকের জন্য ডকার খুলুন এবং * এ যান

Preferences > Resources > Advanced > Disk Image Location

* এটি 2.2.0.5 সংস্করণের জন্য, তবে পুরানো সংস্করণগুলিতে এটি একই রকম হওয়া উচিত

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

** পুরানো সংস্করণগুলিতে, এটি আপনাকে ইউআইতে আসল ডিস্ক ব্যবহার দেখাবে না এবং ম্যাকস ফাইন্ডার সর্বদা ফাইলের আকার সর্বাধিক বরাদ্দ করা আকার হিসাবে দেখায়। আপনি একটি টার্মিনাল ডিরেক্টরি চালিয়ে এবং চালিয়ে ডিস্কে প্রকৃত আকারটি পরীক্ষা করতে পারেনdu -h Docker.raw

আমি Docker.rawম্যাকের জন্য ডকার মুছে ফেলা , পুনরায় চালু করেছি , এবং ফাইলটি স্বয়ংক্রিয়ভাবে আবার তৈরি হয়েছিল এবং 0 জিবি হওয়ার জন্য ফিরে এসেছিল

সবকিছুই আগের মতো কাজ চালিয়ে গেল যদিও অবশ্যই আমি আমার ডকার ক্যাশে হারিয়েছি। যেমনটি প্রত্যাশা করা হয়েছিল, কয়েকটি ডকার কমান্ড চালানোর পরে ফাইলটি কয়েক জিবি স্টাফ দিয়ে আবার পূরণ করা শুরু করে, তবে কোথাও ৪১ নেই


হালনাগাদ

কয়েক মাস পরে, আমার Docker.raw পূরণ আবার একই আকারে ফিরে আসে। সুতরাং এই পদ্ধতিটি কাজ করেছিল, তবে প্রতি কয়েকমাসে পুনরাবৃত্তি করতে হবে। আমার জন্য এটা ঠিক আছে।

এটি কেন কাজ করে তার উপর একটি নোট - আমাকে ধরে নিতে হবে এটি ম্যাকের জন্য ডকারে একটি বাগ। এটি সত্যিই মনে হয় docker system prune/ docker system prune --volumesসম্পূর্ণরূপে এই ফাইলটির বিষয়বস্তু মুছে ফেলা উচিত, তবে এটি প্রদর্শিত হয় যে এই ফাইলটি এমন অন্যান্য জিনিস জড় করে যা এই আদেশগুলি দ্বারা মোছা যায় না। যাইহোক, ম্যানুয়ালি মুছে ফেলা সমস্যাটি সমাধান করে!


খনি 116gb ডব্লুটিএফ ছিল ...
CW0007007

15

ডকার চারদিকে ঝুলন্ত চিত্রগুলি ছেড়ে দেয় যা আপনার স্থান নিতে পারে। ডকারের পরে পরিষ্কার করার জন্য, নিম্নলিখিতগুলি চালান:

docker image prune [-af if you want to force remove all images]

বা ডকারের পুরানো সংস্করণ সহ:

docker rm $(docker ps -q -f 'status=exited')
docker rmi $(docker images -q -f "dangling=true")

এটি প্রস্থানিত এবং জটলা ছবিগুলি সরিয়ে ফেলবে, যা আশা করি ডিভাইসের স্থান পরিষ্কার করে দেয় ars


14
  1. জটলা ছবিগুলি পরিষ্কার করুন docker rmi $(docker images -f "dangling=true" -q)
  2. অযাচিত ভলিউম সরান
  3. অব্যবহৃত চিত্রগুলি সরান
  4. অব্যবহৃত পাত্রে সরান

আমার জন্য সমস্যাটি অনেক বেশি চিত্র ছিল। এগুলি পরিষ্কার করার পরে ডকার আবার কাজ করে।
ট্রান ট্রায়েট

9

আপনি এটি ব্যবহার করতে পারেন:

docker system prune

বা শুধু খণ্ড জন্য:

docker volume prune

7

আমার ক্ষেত্রে উবুন্টু-সার্ভারের 18.04.1 ইনস্টলেশন [কিছু অদ্ভুত কারণে] 750 গিগাবাইটের পরিবর্তে মাত্র 4 জিবি আকারের একটি এলভিএম লজিক্যাল ভলিউম তৈরি করেছে। সুতরাং চিত্রগুলি টানার সময় আমি এই "ডিভাইসে কোনও স্থান অবশিষ্ট রাখব না" ত্রুটি পেয়ে যাব। ফিক্সটি সহজ:

lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

.. আমার ধাপে ধাপে বিবরণ দেখতে resize2fs : নিম্নলিখিত থ্রেড stackoverflow.com/questions/32485723/...
অ্যালেক্স

7

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

ডকার সিস্টেম ছাঁটাই - সমস্ত

সমাধানটি যা শেষ পর্যন্ত কাজ করেছে:

  1. ডকার তথ্য
    • বর্তমান ডকার স্টোরেজ ড্রাইভার পরীক্ষা করতে
    • খনিটি ছিল: স্টোরেজ ড্রাইভার: ডিভাইসমেপার; আপনার যদি ওভারলে 2 হিসাবে স্টোরেজ ড্রাইভার থাকে তবে চিন্তার কিছু নেই। সমাধান এখনও আপনার জন্য কাজ করবে।
  2. df -h
    • এটি মেশিনে উপলভ্য ফাইল সিস্টেমগুলি এবং সেগুলি যেখানে মাউন্ট করা হয়েছে সেই পথে পরীক্ষা করতে হবে। একটি নোট রাখতে দুটি মাউন্ট পাথ:
    • / dev / mapper / rootvg-var 7.6G 1.2G 6.1G 16% / var
    • / dev / mapper / rootvg-apps 60G 9.2G 48G 17% / অ্যাপ্লিকেশন
    • বিঃদ্রঃ - ডিফল্টরূপে ডকার স্টোরেজ পাথটি হ'ল / var / lib / ডকার। এটিতে স্পেস available 6 জিবি উপলব্ধ রয়েছে এবং তাই স্পেস সম্পর্কিত সমস্ত সমস্যা রয়েছে। সুতরাং মূলত, আমাকে ডিফল্ট স্টোরেজটি অন্য যে কোনও স্টোরেজে স্থানান্তর করতে হবে যেখানে উপলভ্য স্থান বেশি। আমার জন্য এর ফাইল সিসেম পাথ '/ dev / mapper / rootvg-apps' যা / অ্যাপ্লিকেশনগুলিতে মাউন্ট করা হয়। এখন কাজটি হ'ল / var / lib / ডকারকে / অ্যাপস / নিউডোকার / ডকারের মতো কিছুতে স্থানান্তরিত করা।
  3. mkdir / apps / newdocker / docker
  4. chmod -R 777 / অ্যাপস / নিউডোকার / ডকার
  5. লিনাক্সের মধ্যে ডকার.স্রাইভ ফাইল আপডেট করুন যা: / usr / lib / systemd / সিস্টেমের অধীনে থাকে
    • vi /usr/lib/systemd/system/docker.service
  6. স্টোরেজ ডিভাইসটি যদি ডিভাইসম্যাপার হয় তবে বিদ্যমান এক্সস্টার্ট লাইনে মন্তব্য করুন এবং [পরিষেবা] এর নীচে যুক্ত করুন:
    • ExecStart =
    • এক্সেকস্টার্ট = / ইউএসআর / বিন / ডকার্ড -s ডিভাইসমেপার - স্টোরেজ-অপ্ট ডেম.ফেস = এক্সএফএস - স্টোরেজ-অপ্ট ডিএম.বাসেসাইজ = 40 গিগাবাইট-জি / অ্যাপস / নতুনডোকার / ডকার - এক্সেক-অপট নেটিটি.সিআরপিআরপি = সিগ্রুপ্প
  7. অথবা স্টোরেজ ডিভাইস ওভারলে 2 থাকলে:
    • বিদ্যমান এক্সেক্সস্টার্ট বিবৃতিতে কেবল -g / অ্যাপস / নতুনডোকার / ডকার যুক্ত করুন।
    • এক্সেকস্টার্ট = / ইউএসআর / বিন / ডকারড-জি / অ্যাপস / নিউডোকার / ডকার-এইচডি এইচডি: // --কন্টেইনারড = / রান / কনটেইনারড / কনটেইনারড.সক
  8. rm -rf / var / lib / ডকার (এটি বিদ্যমান সমস্ত ডকার ডেটা মুছে ফেলবে)
  9. systemctl স্টপ ডকার
  10. পিএস অক্স | grep -i ডকার | গ্রেপ-ভি গ্রেপ
    • উপরের কমান্ড দ্বারা যদি কোনও আউটপুট উত্পাদিত না হয় তবে নীচে কমান্ড দ্বারা সিস্টেমড ডেমন পুনরায় লোড করুন।
  11. systemctl ডেমন-পুনরায় লোড করুন
  12. systemctl স্টার্ট ডকার
  13. ডকার তথ্য
    • উপলভ্য ডেটা স্পেসটি দেখুন: নতুন ফাইল সিস্টেমে ডক করার জন্য 62.15 গিগাবাইট পরে।
  14. সম্পন্ন

এটি কীভাবে অর্জন করা যায় সে সম্পর্কে আমি সমস্ত দস্তাবেজের দিকে নজর রেখেছি! ধন্যবাদ জনাব. আমরা কি এই উত্তরগুলির একটি হিসাবে চিহ্নিত করতে পারি?
ভুলেজেন্ড


4

আপনার সিগ্রুপগুলিতে cpusetনিয়ামক সক্ষম করা আছে। এই নিয়ামকটি বেশিরভাগই NUMA পরিবেশে কার্যকর যেখানে এটি আপনার সিপিইউ / মেমরি ব্যাঙ্কটি আপনার কাজগুলি চালানোর জন্য অনুমোদিত কিনা তা সূক্ষ্মভাবে নির্দিষ্ট করতে দেয়।

ডিফল্টরূপে বাধ্যতামূলক cpuset.memsএবংcpuset.cpus সেট করা নেই যার অর্থ আপনার কাজের জন্য "কোনও স্থান অবশিষ্ট নেই", সুতরাং ত্রুটি।

এটির সমাধানের সবচেয়ে সহজ উপায় হ'ল cgroup.clone_childrenমূল সিগ্রুপে 1 সক্ষম করা। আপনার ক্ষেত্রে এটি হওয়া উচিত

echo 1 > /sys/fs/cgroup/docker/cgroup.clone_children

এটি মূলত সিস্টেমটিকে কন্টেইনারগুলির cpuset.memsএবং cpuset.cpusতাদের পিতামাতার সিগ্রুপ থেকে স্বয়ংক্রিয়ভাবে আরম্ভ করার নির্দেশ দেয় ।


1
এটা সঠিক উত্তর. সত্যই সহজভাবে ডকারকে যে কোনও ক্ষেত্রে আপগ্রেড করতে হবে = = ডকার 1.8 এর সমাধান করা উচিত । এটি github.com/opencontainers/runc/issues/133 সম্পর্কিত , ইস্যু থেকে আরও একটি সম্ভাব্য কাজ "echo 0 > /sys/fs/cgroup/cpuset/system.slice/cpuset.mems
cpuguy83

2

যদি আপনি ডকার টুলকিটের মাধ্যমে বুট 2 ডকার চিত্রটি ব্যবহার করেন, তবে সমস্যাটি বুট 2 ডকার ভার্চুয়াল মেশিনের জায়গাগুলি ফুরিয়েছে from

আপনি যখন একটি করতে docker importবা একটি নতুন চিত্র যুক্ত করেন, তখন চিত্রটি অনুলিপি হয়ে যায়/mnt/sda1 যা সম্ভবত পূর্ণ হয়ে যায়।

ছবিতে আপনার কোন স্থানটি পাওয়া যায় তা যাচাই করার একটি উপায় হ'ল ভিএম-তে প্রবেশ করে চালানো df -h / এমএনটি / এসডিএ-তে অবশিষ্ট স্থানটি পরীক্ষা করে দেখুন

Ssh কমান্ডটি হ'ল docker-machine ssh default

একবার আপনি নিশ্চিত হয়ে গেছেন যে এটি সত্যই কোনও স্থানের সমস্যা, আপনি এই প্রশ্নের কয়েকটি উত্তরের নির্দেশাবলী অনুযায়ী পরিষ্কার করতে পারেন, বা স্থানটি বাড়িয়ে আপনি নিজেই বুট 2 ডকারের চিত্রটির আকার পরিবর্তন করতে পারেন /mnt/sda1

চিত্রটি পুনরায় আকার দেওয়ার জন্য আপনি এখানে নির্দেশাবলী অনুসরণ করতে পারেন https://gist.github.com/joost/a7cfa7b741d9d39c1307


2

আপনি Docker ডেস্কটপ ব্যবহার করে থাকেন, তাহলে আপনি বৃদ্ধি করতে পারেন ডিস্ক ইমেজ সাইজ মধ্যে উন্নত সেটিংস Docker এর এ গিয়ে পছন্দসমূহ

এখানে ম্যাকস থেকে প্রাপ্ত স্ক্রিনশট:

ম্যাকস, সংস্থানসমূহ, উন্নত, ডিস্ক চিত্রের আকারে ডকার ডেস্কটপ


1

এটি 40 ডিগ্রি ডিফল্ট স্টোরেজ স্পেসের কারণে হতে পারে (ডিফল্ট পাথ, / var / lib / ডকার)

আপনি স্টোরেজ ভলিউমটি বিভিন্ন পথে নির্দেশ করতে পারেন

  • ফাইল সম্পাদনা করুন -> / ইত্যাদি / sysconfig / ডকার-স্টোরেজ
  • লাইনের নীচে আপডেট করুন (উপস্থিত না থাকলে যোগ করুন)

DOCKER_STORAGE_OPTIONS = '- স্টোরেজ-ড্রাইভার = ওভারলে - অনুচ্ছেদ = CUSTOM_PATH'

  • পুনঃসূচনা ডকার সিস্টেমেটল স্টপ ডকার সিস্টেম্টটেল ডেমন-পুনরায় লোড সিস্টেমটেক্ট স্টার্ট ডকার

যদি আপনি কমান্ড ডকার তথ্য চালান (এটি স্টোরেজ ড্রাইভারকে ওভারলে হিসাবে দেখানো উচিত)


0

দেখে মনে হচ্ছে এটির কয়েকটি উপায় রয়েছে। আমার যে সমস্যাটি ছিল তা হ'ল ডকার ডিস্ক চিত্রটি তার সর্বোচ্চ আকার (ডকার তিমি -> অগ্রাধিকার -> ডিস্কটি হিট করেছে যদি আপনি ওএসএক্সের আকারটি দেখতে চান তবে) k

আমি সীমাটি ছাপিয়েছি এবং ভাল ছিলাম। আমি নিশ্চিত যে অব্যবহৃত চিত্রগুলি পরিষ্কার করার কাজটিও কার্যকর হবে।


0

আমি নীচের কমান্ডগুলি চালাচ্ছি।

এর পরে চিত্রগুলি পুনর্নির্মাণ করার দরকার নেই।

docker rm $(docker ps -qf 'status=exited')
docker rmi $(docker images -qf "dangling=true")
docker volume rm $(docker volume ls -qf dangling=true)

এগুলি থেকে প্রস্থানিত / ঝুলন্ত পাত্রে এবং ঝুঁকির পরিমাণগুলি সরানো হয়।


0

আমার docker system pruneজন্য কৌতুক করেছে। আমি ম্যাক ওএস চালাচ্ছি।


এটি আসলে আমার উপরও কাজ করেছিল, যখন আমি ম্যাক ওএসে ব্যবহৃত স্থান সাফ করার চেষ্টা করছিলাম। কমান্ডটি ব্যবহার করে docker volume lsকিছুই ফিরিয়ে দেওয়া হচ্ছে না, তাই দেখে মনে হয়েছিল যে সঞ্চয়টি বেশিরভাগ ক্ষেত্রে ক্যাশে এবং জঞ্জাল চিত্রগুলির দ্বারা ব্যবহৃত হয়েছিল।
তুহিন

-3
$ docker rm $(docker ps -aq)

এটি আমার পক্ষে কাজ করেছে

docker system prune 

সর্বশেষ সংস্করণ সহ আরও ভাল বিকল্প হিসাবে উপস্থিত বলে মনে হচ্ছে

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