ডকার ত্রুটি ডকারের ধারক মুছতে পারে না, দ্বন্দ্ব: সংগ্রহের রেফারেন্স সরাতে অক্ষম


165

আমি ডকারে ধারকটি সরাতে চাই, তবে আপনি মুছতে চাইলে একটি ত্রুটি ঘটে

ধারকটি অপসারণ করার আগে আমার পরবর্তী পদক্ষেপ, বিদ্যমান ধারকটির তালিকা দেখুন

sts@Yudi:~/docker$ sudo docker ps -as

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES                  SIZE
78479ffeba5c        ubuntu              "/bin/bash"         42 hours ago        Exited (0) 42 hours ago                       sharp_wescoff          81 B (virtual 187.7 MB)
0bd2b54678c7        training/webapp     "python app.py"     5 days ago          Exited (0) 5 days ago                         backstabbing_ritchie   0 B (virtual 323.7 MB)
0adbc74a3803        training/webapp     "python app.py"     5 days ago          Exited (143) 5 days ago                       drunk_feynman          0 B (virtual 323.7 MB)

একটি আমি তালিকাটি মুছতে চাই, নাম "প্রশিক্ষণ / ওয়েব অ্যাপ্লিকেশন" তবে একটি ত্রুটি ঘটেছে

sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from daemon: conflict: unable to remove repository reference "training/webapp" (must force) - container 0bd2b54678c7 is using its referenced image 54bb4e8718e8
Error: failed to remove images: [training/webapp]

ছবিতে ধারক চলছে কিনা?

সাহায্য করুন


এটি আমার মাঝে মাঝে ঘটে তবে আমি কী ঘটতে পারে তার প্যাটার্নটি বের করতে অক্ষম (যেহেতু এটি আমার কাছে সর্বদা ঘটে না), আমি যদি জোর করে চিত্রটি সরিয়ে ফেলি তবে এটি অন্যান্য সামগ্রীর একটি গুচ্ছও সরিয়ে দেয়। আপনি কি জানেন যে আপনার জন্য ত্রুটিটি কি হয়েছিল? আপনি কি এটি পুনরুত্পাদন করতে সক্ষম?
চার্লি পার্কার 0

ফিল্টার উদাহরণ, নিদর্শন ইত্যাদি সহ মেলিসা অ্যান্ডারসন ডিসেম্বর 2017 থেকে ডকার চিত্র, পাত্রে এবং ভলিউমগুলি কীভাবে সরিয়ে ফেলা যায় তার দুর্দান্ত সাম্প্রতিক সংক্ষিপ্তসার
ওয়েবেল আইটি অস্ট্রেলিয়া -

উত্তর:


124

ডকার ইমেজ এবং ডকারের ধারকগুলির মধ্যে পার্থক্য রয়েছে। এই তাই প্রশ্ন পরীক্ষা করুন

সংক্ষেপে, একটি ধারক একটি চিত্রের চলমান উদাহরণ is যে কারণে যদি সেই চিত্র থেকে কোনও চলমান ধারক থাকে তবে আপনি কোনও চিত্র মুছতে পারবেন না। আপনাকে কেবল প্রথমে ধারকটি মুছতে হবে।

docker ps -a               # Lists containers (and tells you which images they are spun from)
docker images              # Lists images  
docker rm <container_id>   # Removes a container

docker rmi <image_id>      # Removes an image 
                           # Will fail if there is a running instance of that image i.e. container

docker rmi -f <image_id>   # Forces removal of image even if it is referenced in multiple repositories, 
                           # i.e. same image id given multiple names/tags 
                           # Will still fail if there is a docker container referencing image

ডকারের জন্য আপডেট 1.13+ [জানুয়ারী 2017 থেকে]

ডকার ১.১৩-এ, আমরা যে লজিক্যাল অবজেক্টের সাথে এটি ইন্টারঅ্যাক্ট করছে তার অধীনে বসার জন্য প্রতিটি কমান্ডকে পুনরায় গোষ্ঠীভুক্ত করেছি

মূলত, উপরের কমান্ডগুলি আরও রচনা, আরও পরিষ্কারভাবে লেখা যেতে পারে:

docker container ls -a
docker image ls
docker container rm <container_id>
docker image rm <image_id>

এছাড়াও, আপনি সরাতে চান যদি সবকিছু আপনি ব্যবহার করতে পারে:

docker system prune -a

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

  • সমস্ত পাত্রে বন্ধ
  • কমপক্ষে একটি ধারক দ্বারা ব্যবহৃত সমস্ত নেটওয়ার্ক
  • সমস্ত অব্যবহৃত চিত্র
  • সমস্ত ক্যাশে তৈরি

2
docker rmi -f idঅপসারণটি "জোর করে" ব্যবহার করতে পেরেছি ।
ওয়ার্নারসিডি

@ ওয়ার্ননারসিডি -fসাহায্য করে যখন আপনি একাধিক ভাণ্ডারে রেফারেন্সযুক্ত কোনও চিত্র সরাতে চান যা কোনও চিত্র অপসারণ করতে ব্যর্থ হওয়ার অন্য সাধারণ কারণ।
আহমদ আবদেলঘানি

1
লক্ষণীয় যে docker container lsশুধুমাত্র চলমান পাত্রে তালিকাবদ্ধ করে। -aপতাকা সংযোজন তাদের সকলের তালিকাভুক্ত না হওয়া পর্যন্ত এটি আমার সাথে বিচলিত হয়েছিল ।
এমএফবি

@ এমএফবি ভাল পয়েন্ট। কমান্ডের দুটি সেটের মধ্যে সমতা বজায় রাখতে পতাকাটি কমান্ডটিতে যুক্ত হয়েছে। ধন্যবাদ!
আহমদ আবদেলঘানি

এখনও ওএসএক্স ডকার ডেস্কটপ v2.2.0.4 (ইঞ্জিন 19.03.8) এ কাজ করে
rrrrrraul

83

প্রথমে ধারকটির নাম মুছে ফেলুন

$ sudo docker rm backstabbing_ritchie

ফলাফল

$ sudo docker rm backstabbing_ritchie
  backstabbing_ritchie

মুছে ফেলার জন্য ধারকটিতে তালিকাভুক্ত দ্বিতীয় অংশটি মুছুন

$ sudo docker rm drunk_feynman 
  drunk_feynman

দ্বিতীয়ত, পাত্রে সরান

$ sudo docker rmi training/webapp

ফলাফল

$ sudo docker rmi training/webapp  
  Untagged: training/webapp:latest
  Deleted: 54bb4e8718e8600d78a5d7c62208c2f13c8caf0e4fe73d2bc0e474e93659c0b5
  Deleted: f74dd040041eb4c032d3025fe38ea85de8075992bdce6789b694a44b20feb8de
  Deleted: 7cbae69141977b99c44dc6957b032ad50c1379124d62b7d7d05ab7329b42348e
  Deleted: abb991a4ed5e4cde2d9964aec4cccbe0015ba9cc9838b696e7a32e1ddf4a49bd
  Deleted: 1952e3bf3d7e8e6a9b1e23bd4142e3c42ff7f4b7925122189704323593fd54ac
  Deleted: f95ebd363bf27a7546deced7a41a4099334e37a3d2901fa3817e62bb1ade183f
  Deleted: 20dd0c75901396d41a7b64d551ff04952084cc3947e66c67bae35759c80da338
  Deleted: 2505b734adda3720799dde5004302f5edb3f2a2ff71438f6488b530b728ba666
  Deleted: 2ee0b8f351f753f78f1178000ae37616eb5bf241d4ef041b612d58e1fd2aefdc
  Deleted: 2ce633e3e9c9bd9e8fe7ade5984d7656ec3fc3994f05a97d5490190ef95bce8d
  Deleted: 98b15185dba7f85308eb0e21196956bba653cf142b36dc08059b3468a01bf35d
  Deleted: 515565c29c940355ec886c992231c6019a6cffa17ff1d2abdfc844867c9080c5
  Deleted: 2880a3395eded9b748c94d27767e1e202f8d7cb06f1e40e18d1b1c77687aef77

মহাদেশ পরীক্ষা করুন

  $ sudo docker ps -as
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES                  SIZE
  78479ffeba5c        ubuntu              "/bin/bash"         43 hours ago        Exited (0) 43 hours ago                       sharp_wescoff          81 B (virtual 187.7 MB)

6
আপনার যদি প্রচুর পুরানো পাত্রে থাকার ঘটনা ঘটে থাকে তবে আপনি rm `docker ps -aq`একবারে এটি মুছে ফেলার পরিবর্তে ক্লিনআপের জন্য ডকার বিবেচনা করতে পারেন । এখানে
ফিলিইইইইপপ

ছবিটি মোছার আগে নামটি মুছে ফেলা দরকার কেন? প্রথমে নাম মুছতে কোনও চিত্র ডাব্লু / ও কে মুছে ফেলার চেষ্টা করা কেন একেবারেই সমস্যা হতে পারে?
কোড_ড্রেড 22

@code_dredd "নাম মুছে ফেলার" মতো জিনিস নেই। এটি এমন ধারক যা কোনও চিত্র মুছে ফেলার আগে অবশ্যই মুছে ফেলা উচিত। স্ট্যাকওভারফ্লো
আহমদ আবদেলঘানি

37

আপনি যদি ডকারের চিত্র এবং পাত্রে পরিষ্কার করতে চান তবে

সতর্কতা: এটি সবকিছু ফ্লাশ করবে

সমস্ত পাত্রে বন্ধ করুন

docker stop $(docker ps -a -q)

সমস্ত পাত্রে সরান

docker rm $(docker ps -a -q)

সমস্ত ছবি সরান

docker rmi -f $(docker images -a -q)

কাজ করেছে। এছাড়াও, আপনি যদি ধারকটি থামান, আপনি এখনও এটি একটি তালিকায় দেখতে পাবেন। অতএব, আপনি এটি দিয়ে মুছে ফেলতে হবে docker rm $(docker ps -a -q)। ধন্যবাদ!

28

আপনি -fপাত্রে মুছে ফেলার জন্য বিকল্প ব্যবহার করতে পারেন ।

sudo docker rmi -f training/webapp

sudo docker stop training/webappমুছে ফেলার আগে আপনি পাত্রে ব্যবহার বন্ধ করতে পারেন


1
আমি চেষ্টা করেছি, ধারকটি বন্ধ করে $ সুডো ডকার স্টপ প্রশিক্ষণ / ওয়েব অ্যাপ্লিকেশন ডেমন থেকে ত্রুটি সাড়া: এ জাতীয় কোনও আইডি: প্রশিক্ষণ / ওয়েব অ্যাপ্লিকেশন ত্রুটি: পাত্রে থামাতে ব্যর্থ হয়েছে: [প্রশিক্ষণ / ওয়েব
অ্যাপ্লিকেশন

আপনি ধারক আইডি দিয়ে থামার চেষ্টা করতে পারেন sudo docker stop 0bd2b54678c7
সরিল সুধাকরণ

23

আপনার যদি মাল্টিপল ডকার পাত্রগুলি চালু করা থাকে তবে এটি ব্যবহার করুন

$ docker rm $(docker ps -aq)

এটি "PS -aq" কমান্ডে তালিকাভুক্ত সমস্ত বর্তমান ডকারকে সরিয়ে ফেলবে।

উত্স: https://github.com/docker/docker/issues/12487 এ আআম


এটি আমার পক্ষে কাজ করেছে। আমি এই কমান্ডটি চালানোর পরে, আমাকে তখন চালাতে হবে docker image lsএবং তারপরে docker image rm Xযেখানে প্রতিটি এক্স lsআউটপুট থেকে প্রাপ্ত হয়েছিল ।
jftuga

5

এটি 2 বছরের পুরানো প্রশ্ন হিসাবে লক্ষ্য করা গেছে, তবে এখনও এই নির্দিষ্ট প্রশ্নের জন্য আমার কাজটি ভাগ করে নিতে চান:

প্রথমত, docker container ls -aআপনার কাছে থাকা সমস্ত পাত্রে তালিকাবদ্ধ করতে চালনা করুন এবং আপনি মুছতে চান এমন ইঙ্গিত করুন।

দ্বিতীয়ত, কমান্ড সহ একটি মুছুন docker container rm <CONTAINER ID>(যদি ধারকটি বর্তমানে চলমান থাকে তবে আপনাকে প্রথমে এটি বন্ধ করা উচিত, docker container stop <CONTAINER ID>নির্দিষ্ট কন্টেইনারটি দয়া করে থামানোর জন্য ছুটে চলুন, কারণ যদি এটি যাই হোক না কেন এটি বন্ধ না করে, বিকল্পভাবে আপনি চালাতে পারেন docker container kill <CONTAINER ID> to force shutdown of the specified container)।

তৃতীয়ত, চালিয়ে পাত্রে সরান docker container rm <CONTAINER ID>

সবশেষে আপনি docker image ls -aসমস্ত চিত্র দেখতে দৌড়াতে পারেন এবং চালাতে চান আপনার মুছতে মুছতে পারেন docker image rm <hash>


2

ডকার চিত্রগুলি সরান>

সমস্ত পাত্রে তালিকাবদ্ধ করুন

docker container ls

সমস্ত চিত্রের তালিকা

docker image ls

ধারক আইডি দিয়ে ধারক থামান

docker container stop <container_id>

ধারক আইডি দিয়ে ধারক সরান

docker container rm <container_id>

থামাতে এবং সরানো না চাইলে, জোর করে অপসারণ করতে পারেন

docker container rm -f <container_id>

চিত্র সরান

docker image rm <image_id>

সম্পন্ন!


1

আপনার সমস্ত ডকার চিত্রগুলি তালিকাভুক্ত করুন:

docker images

সমস্ত বিদ্যমান ডকার পাত্রে তালিকাবদ্ধ করুন:

docker ps -a

সমস্ত লক্ষ্যযুক্ত পাত্রে মুছুন, যা আপনি মুছতে চান এমন চিত্রটি ব্যবহার করছে:

docker rm <container-id>

লক্ষ্যযুক্ত চিত্রটি মুছুন:

docker rmi <image-name:image-tag or image-id>

0

একটি নির্দিষ্ট চিত্রের সাথে যুক্ত কেবল পাত্রে সরান

docker ps -a | grep training/webapp | cut -d ' ' -f 1 | xargs docker rm
  • PS -a: সমস্ত পাত্রে তালিকাবদ্ধ করুন
  • গ্রেপ প্রশিক্ষণ / ওয়েব অ্যাপ্লিকেশন: প্রশিক্ষণ / ওয়েব অ্যাপ্লিকেশন চিত্র থেকে শুরু হওয়া পাত্রে সমস্ত কিছুই ফিল্টার করে ফেলুন
  • কাট-ডি '' -ফ 1: কেবলমাত্র ধারক আইডির তালিকা করুন (স্থান দ্বারা সীমিত হলে প্রথম ক্ষেত্র)
  • xargs ডকার আরএম: ধারক অপসারণের জন্য ডকার আরএম কমান্ডে ধারক আইডি তালিকা আউটপুট প্রেরণ করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.