ডকার মেশিন: ডিভাইসে কোনও স্থান বাকি নেই


126

আমি ডকার রচনা দিয়ে ডকার মেশিন স্থাপনের চেষ্টা করছি।

পরিস্থিতি 1 (ডকার মেশিন ছাড়াই)
আমি যদি docker-compose up -dডকার মেশিন ছাড়া চালাই তবে এটি আমার 3 টি সংযুক্ত পাত্রে উদ্দেশ্য হিসাবে তৈরি করেছে (এনজিনেক্স + মঙ্গোডব + নোডেজ)।

পরিস্থিতি 2 (ডকার মেশিন সহ)
তারপরে আমি ডকার মেশিন ব্যবহার করে একটি ভিএম তৈরি করি এবং ডকারকে সেই মেশিনের সাথে কথা বলতে বলি eval $(docker-machine env streambacker-dev)

এই মুহুর্তে, আমি যদি আমার ডকার মেশিনে গিয়ে চালনা df -hকরি তবে আমি পেয়ে যাব:

ডকার মেশিন df -h

আমি যদি তখন চালাই তবে docker-compose up -dআমি সর্বশেষ ধারকটি ডাউনলোড করার সময় একটি "ডিভাইসে কোনও স্থান বাকী নেই" ত্রুটি পেয়েছি ।

"tmpfs" আসলে এর পরে কিছুটা পূর্ণ বলে মনে হচ্ছে:

ডকার মেশিন df -h

--Virtualbox- ডিস্ক-আকারের বিকল্পটি পরীক্ষা করে দেখা যায় যে এটি 20000 এমবিতে ডিফল্ট হয়েছে, যা আমি মনে করি যা আমরা উভয় ছবিতেই "/ dev / sda1" হিসাবে দেখতে পারি। সুতরাং পাত্রে কেন "tmpfs" এন পূরণ করা হচ্ছে এবং "tmpfs" ঠিক কী? একটি অস্থায়ী ডাউনলোড ডিরেক্টরি হয়? আমি কীভাবে আমার ধারকগুলির জন্য আরও স্থান তৈরি করতে পারি?

ধন্যবাদ!

তথ্যের জন্য, আমি ডকার মেশিন 0.4.0-rc2 এবং ডকার রচনা 1.3.2 ব্যবহার করছি ।


4
এর tmpfsসাথে কিছু করার নেই --virtualbox-disk-size। এটি একটি ফাইল সিস্টেম (র‌্যাম ডিস্কের মতো) মেমরিতে মাউন্ট করা আছে এবং আপনার ডিস্ক অ্যাক্সেস করছে না এমন কিছুই।
0x7d7b

এই তথ্যের জন্য @ h3nrik ধন্যবাদ।
মার্ক পেরিন-পেলেটিয়ার

2
ডকারের ঝোলা জিনিসগুলি যেমন ড্যাংলিং ইমেজগুলির মতো, ঝাঁকুনির পরিমাণগুলি দেখুন এবং সেগুলি মুছুন। docker rmi $(docker images -f dangling=true -q)এবংdocker volume rm $(docker volume ls -f dangling=true -q)
জিন্না বালু 8'19

উত্তর:


87

যেমন উপরে বলা হয়েছে, tmpfsএর কিছু করার নেই --virtualbox-disk-size। দেখে মনে হচ্ছে বুট 2 ডকার মেমোরিতে tmpfsপ্রবেশ করে, তাই আপনার ভার্চুয়ালবক্স ভিএম- তে আরও মেমরি উত্সর্গ করা দরকার। আপনি --virtualbox-memoryপ্যারামিটার নির্দিষ্ট করে এটি করতে পারেন ।

   --virtualbox-memory "1024"
Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE]

পূর্ব নির্ধারিত:

$ docker-machine create --driver virtualbox testA
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
$ docker-machine ssh testA
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
docker@testA:~$ df -h /
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   896.6M    112.7M    783.9M  13% /

সাথে --virtualbox-memoryসেট8096

$ docker-machine create --driver virtualbox --virtualbox-memory 8096 testB
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
$ docker-machine ssh testB
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
docker@testB:~$ df -h /
Filesystem                Size      Used Available Use% Mounted on
tmpfs                     6.9G    112.4M      6.8G   2% /

14
খুব স্বজ্ঞাত নয়, তবে এটি কাজ করেছিল। কি হ্যাক, ডকার?
বাস্তিবেন

1
আসলেই স্বজ্ঞাত নয়! তবে এটি এটির সাথে সমস্যা বলে মনে হচ্ছে এবং এটি আমার জন্য স্থির করে। সুতরাং, +1।
রে পেন্ডারগ্রাফ

আমার জন্যও সমস্যাটি স্থির করে দিয়েছি, আমি কীভাবে বুঝতে পারি না তবে, আপনাকে ধন্যবাদ!
বেনদিহসান

ডিফল্ট আকার বাড়ানোর কোনও উপায় যাতে আমাকে প্রতিটি সময় এটি ম্যানুয়ালি নির্দিষ্ট করতে না হয়?
সিজিএফএক্স

124

আমার একই ত্রুটি ছিল ( [ERROR] InnoDB: Error number 28 means 'No space left on device') এবং এটি এইভাবে সমাধান করুন:

ঘ। ডকারে এতিম খণ্ডগুলি মুছুন, আপনি বিল্ট-ইন ডকার ভলিউম কমান্ডটি ব্যবহার করতে পারেন। অন্তর্নির্মিত কমান্ডটি / 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}


3
Mac এ আমি একক উদ্ধৃতি ( ') যুক্তি মান প্রায় ব্যবহার করতে ছিল: docker rmi $(docker images | grep '^<none>' | awk '{print $3}')। থামানো পাত্রে অপসারণ docker rm $(docker ps -qa --no-trunc --filter "status=exited")এখানে বর্ণিত হিসাবে সম্পন্ন করা যেতে পারে : stackoverflow.com/a/32723127/619659
ওয়েবডভেশন

1
আমার অনেক অব্যবহৃত চিত্র ছিল, আমি আমার শেলের চরিত্রের সীমাতে পৌঁছেছি। এজন্যই আমি করেছি docker images | grep "^<none>" | xargs docker rmi
ম্যাথিয়াস ব্রাউন

1
অপ্রয়োজনীয় চিত্রগুলি সরিয়ে ফেলা আমার পক্ষে সহায়তা করেছিল।
akauppi

docker volume prune
justin.m.chase

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

65

আপনি যদি ডকার সম্প্রদায় সংস্করণ ব্যবহার করছেন:

 docker system prune
 docker volume prune  # as suggested by @justin-m-chase since system prune does not clean volumes.

আপনি যদি বুট 2 ডকার ব্যবহার করছেন (ডকার-মেশিন) অনাথের ভলিউমগুলি সাফ করুন:

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

অব্যবহৃত চিত্রগুলি সাফ করুন:

 docker rmi $(docker images -q -f "dangling=true")

6
docker system pruneআমাকে সাহায্য করেছেন
ম্যাক্সিম ইয়েফ্রেমভ

2
docker system pruneftw
মাইকেল গিল্ড

1
docker volume pruneকেবলমাত্র খণ্ডের জন্য, সিস্টেমের ছাঁটাই ঝাঁকুনির পরিমাণগুলি সাফ করবে না।
justin.m.chase

যখন উপরে আপনি পর্যাপ্ত স্থান পরিষ্কার নয়, এখানে পারমাণবিক বিকল্প আছে: docker rmi $(docker images -q)। এটি যুক্ত করুন --forceযখন এটি একাধিক পাত্রে অন্তর্ভুক্ত স্তরগুলির একগুচ্ছ এড়িয়ে যায়।
খালি অস্ত্রাগার

14

উ: অব্যবহৃত চিত্রগুলি সরান

ডকার আরএম বা ডকার আরএমআই কমান্ড ব্যবহার করে আপনি যে চিত্রগুলি প্রয়োজন তা মুছে ফেলতে পারেন। প্রকৃতপক্ষে একটি চিত্র বিদ্যমান যা এই কার্যে সহায়তা করে (মার্টিন / ডকার-ক্লিনআপ-ভলিউম)) ভিত্তিটি হ'ল আপনার চিত্র এবং ধারক তালিকা থেকে সেলিকটিগ শুরু করা:

ডকার PS -a -s

বি। ডক্টর জসন বর্ণনার মোডফাই করুন

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

সি লিনাক্স পুনর্নির্মাণ:

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

D. ডকার-মেশিন / বুট 2 ডকার প্রস্তুত করুন

ধারণাটি হ'ল ডিফল্ট ডকার-মেশিনটি পুনরায় তৈরি করুন। নিম্নলিখিত কমান্ডগুলি আপনাকে চিত্রিত করতে পারে। মনে রাখবেন যে আপনি বুট 2 ডকার পুনরায় তৈরি করতে গিয়ে আপনি পূর্ববর্তী ডাউনলোড করা ডকার চিত্র হারিয়ে ফেলবেন।

ডকার-মেশিন আরএম ডিফল্ট

ডকার-মেশিন তৈরি --ড্রাইভার ভার্চুয়ালবক্স - ভার্চুয়ালবক্স-ডিস্ক-আকারের "100100" ডিফল্ট

ডকার-মেশিন এনএভিএফ ডিফল্ট

তারপরে আপনি ভার্চুয়াল বাক্সে যেতে পারেন এবং "df -h" কমান্ডের সাহায্যে বুট 2 ডকার স্থান দেখতে পাবেন


ধন্যবাদ। আমি উইন্ডোজে কাজ করছিলাম। আমি ডকার-মেশিনটি পুনরায় তৈরি করে এটি তৈরি করেছি।
কিনো

ডিটিকে সহায়তা করেছে: (ডকার মেশিন পুনরুদ্ধার করা)
স্ট্যানিসালভএল

আপনাকে ধন্যবাদ, ডকার-মেশিনটি পুনরুদ্ধার করা আমার জন্য কাজ করেছিল (আমি উইন্ডোতে আছি)
লুচা লরা হার্ডি

আমি অনেক ভালবাসা অনুভব করছি!
এডুয়ায়ো

2

ডকার ওএসএক্সে / আমি একটি বোতাম টিপতে সক্ষম হয়েছি [ মুভ ডিস্ক চিত্র ] এবং এটি সফলভাবে ডকার.ককোয়ো 2 (সম্ভবত ধারক / চিত্রযুক্ত) সরিয়ে নিয়েছে

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


0

আমি এই সমস্যায় পড়েছি এবং ম্যাকের জন্য ডকার ইউআইয়ের সাথে অতিরিক্ত স্থান যুক্ত করতে পারি না, আমি হোমব্রিউয়ের সাথে ডকার ইনস্টল করেছি এবং আমার মেশিন তৈরি করার সময় নিম্নলিখিত কমান্ডটি চালিয়েছি:

docker-machine create --driver virtualbox --virtualbox-memory "2048" --virtualbox-disk-size "40000" default

এটি আমার আগে থাকা ভার্চুয়ালবক্সে মেমরি এবং ডিস্ক আকারের দ্বিগুণ স্থান যোগ করে এবং আপনি এখানে উপযুক্ত সেটিংসের আকারটি যোগ করতে পারেন

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