2016-01-07 13 views
29

मुझे डॉकर वॉल्यूम्स को डॉकर 1.9.1 के साथ हटाने में समस्याएं आ रही हैं।डॉकर उपयोग में मात्रा में है लेकिन कोई डॉकर कंटेनर

मैंने अपने सभी बंद कंटेनर हटा दिए हैं ताकि docker ps -a खाली हो जाए।

जब मैं docker volume ls का उपयोग करता हूं, तो मुझे डॉकर कंटेनरों का पूरा मेजबान दिया जाता है।

docker volume ls 
DRIVER    VOLUME NAME 
local    a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66 
local    4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317 
local    eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78 
local    91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c 
local    4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69 
local    68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750 
local    7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47 
#etc x 50 

के बाद से इन संस्करणों में से कोई भी कुछ भी महत्वपूर्ण होते हैं, मैं docker volume rm $(docker volume ls -q) साथ सभी संस्करणों शुद्ध करने के लिए प्रयास करें।

प्रक्रिया में, बहुमत निकाल दिए जाते हैं, लेकिन मैं वापस पाने: उनमें से एक बड़ा भाग के लिए

Error response from daemon: Conflict: volume is in use 
Error response from daemon: Conflict: volume is in use 
Error response from daemon: Conflict: volume is in use 
Error response from daemon: Conflict: volume is in use 
Error response from daemon: Conflict: volume is in use 

। यदि मेरे पास पहले स्थान पर मौजूद कोई कंटेनर नहीं है, तो इन वॉल्यूम्स का उपयोग कैसे किया जा रहा है?

+7

डॉकर संदर्भ गणना का उपयोग करता है यह जांचने के लिए कि वॉल्यूम अभी भी उपयोग में है या नहीं; यह सब स्मृति में किया गया है; यह किसी भी तरह से एक बग या रेस कंडीशन हो सकता है, जिसके परिणामस्वरूप कंटेनर हटाया जा रहा है, लेकिन काउंटर अपडेट नहीं किया जा रहा है। डिमन के पुनरारंभ को इसे हल करना चाहिए, लेकिन, हाँ यह संभव है कि कहीं भी एक बग है।क्या आपके सेटअप में कुछ खास है (उदा। क्या आप डॉकर-इन-डॉकर, स्वार?) का उपयोग कर रहे हैं। क्या आप अपने कंटेनर को साफ करने के लिए कुछ स्क्रिप्ट या टूल का उपयोग करते हैं? – thaJeztah

+1

डॉकर '1.9.0' में। मैं आपके कदमों का प्रयास करता हूं, और सभी खंडों को हटा सकता हूं। – firelyu

+4

हे धन्यवाद @ थैजेजाह डॉकर डेमन ('सुडो सेवा डॉकर स्टॉप' और 'सुडो सेवा डॉकर स्टार्ट' को फिर से शुरू करने के लिए) ने मेरे लिए इन सभी भूत खंडों को मंजूरी दे दी। इसके अलावा, ऐसा लगता है कि अब मैं डॉकर आरएम-वी कमांड का उपयोग कर बिना किसी समस्या के वॉल्यूम्स को हटाने में सक्षम हूं। उपयोग में केवल उल्लेखनीय अंतर यह है कि मैं उबंटू 15.10 पर डॉकर-कंपोज़ का उपयोग कर रहा हूं। अगर मैं कभी भी इस समस्या को दोहराने में सक्षम हूं तो मैं वापस रिपोर्ट करूंगा लेकिन अन्यथा ऐसा लगता है कि एक साधारण पुनरारंभ पर्याप्त होगा। धन्यवाद! रीबूट के बाद भी – Tkwon123

उत्तर

31

यहाँ Gonsales!

आप इन कार्यों का उपयोग कर सकते हैं बेरहमी से दूर करने के लिए सब कुछ डोकर से संबंधित

removecontainers() { 
    docker stop $(docker ps -aq) 
    docker rm $(docker ps -aq) 
} 

armaggedon() { 
    removecontainers 
    docker network prune -f 
    docker rmi -f $(docker images --filter dangling=true -qa) 
    docker volume rm $(docker volume ls --filter dangling=true -q) 
    docker rmi -f $(docker images -qa) 
} 

आप अपने ~/Xrc फ़ाइल, जहां X आपके खोल दुभाषिया है करने के लिए उन में जोड़ सकते हैं फ़ाइल (~/.bashrc आप बैश उपयोग कर रहे हैं) और फिर से लोड उन्हें source ~/Xrc निष्पादित करने के माध्यम से। इसके अलावा, आप सिर्फ उन्हें कंसोल के लिए पेस्ट और बाद में कॉपी कर सकते हैं (चाहे विकल्प आपको पहले ले लिया तैयार कार्यों पाने के लिए) अभी चलाएँ:

armaggedon

मुझे आशा है कि यह मदद करता है! यह सामान्य डॉकर-क्लीन अप के लिए भी उपयोगी है। ध्यान रखें कि यह आपकी छवियों को भी हटा देगा, न केवल आपके कंटेनर (या तो चल रहा है या नहीं) और किसी भी प्रकार की आपकी मात्रा।

+0

प्रश्न के अनुसार,' डॉकर वॉल्यूम आरएम 'कमांड विफल रहा था। टिप्पणियों से, संदर्भ गणना को ठीक करने के लिए समाधान डॉकर डिमन को पुनरारंभ करना प्रतीत होता है। – BMitch

+1

@BMitch अगर आप टिप्पणियों के माध्यम से सावधानी से पढ़ते हैं, तो यह समाधान नहीं है: '' 'रिबूट के बाद भी यह कहता है कि डॉकर वॉल्यूम उपयोग में है ..' –

+0

होम्स में एक अलग समस्या है और यह नहीं है जिसने सवाल पोस्ट किया था। उस पर एक टिप्पणी देखें। – BMitch

0

मुझे पूरा यकीन है कि वो वॉल्यूम वास्तव में आपके सिस्टम पर घुड़सवार हैं।/Proc/mounts में देखें और आप उन्हें वहां देखेंगे। आप की संभावना sudo umount <path> या sudo umount -f -n <path> की आवश्यकता होगी। आपको या तो/proc/mounts में या docker volume inspect

1

पर घुड़सवार पथ प्राप्त करने में सक्षम होना चाहिए, मैं डॉकर के लिए बिल्कुल नया हूं। मैं कुछ शुरुआती परीक्षण गड़बड़ी की सफाई कर रहा था और वॉल्यूम को हटाने में सक्षम नहीं था। मैं चल रही सभी बंद कर दिया था, एक docker rmi -f $(docker image ls -q) प्रदर्शन किया, लेकिन अभी भी Error response from daemon: unable to remove volume: remove uuid: volume is in use प्राप्त किया।

मैं एक docker system prune किया था और यह साफ क्या पिछले मात्रा को दूर करने की जरूरत थी:

[0]$ docker system prune 
WARNING! This will remove: 
- all stopped containers 
- all networks not used by at least one container 
- all dangling images 
- all build cache 
Are you sure you want to continue? [y/N] y 
Deleted Containers: 
... about 15 containers UUID's truncated 

Total reclaimed space: 2.273MB 
[0]$ docker volume ls 
DRIVER    VOLUME NAME 
local    uuid 
[0]$ docker volume rm uuid 
uuid 
[0]$ 

https://docs.docker.com/engine/reference/commandline/system_prune/

ग्राहक और डेमॉन एपीआई दोनों होना चाहिए कम से कम इस आदेश का उपयोग करने के लिए 1.25 । अपने क्लाइंट और डेमॉन एपीआई संस्करणों की जांच के लिए क्लाइंट पर डॉकर संस्करण कमांड का उपयोग करें।

+0

धन्यवाद! यह मेरे लिए चाल थी – manncito

संबंधित मुद्दे