วิธีการลบภาพนักเทียบท่าทั้งหมด

หากคุณต้องการแพลตฟอร์มคอนเทนเนอร์แบบโอเพนซอร์สที่ครอบคลุมเพื่อสร้างความเป็นอิสระระหว่างแอพและโครงสร้างพื้นฐาน Docker คือทางออกที่ปลอดภัยที่สุดของคุณ หากคุณได้มีโอกาสใช้งาน คุณรู้อยู่แล้วว่าความสามารถและใช้งานง่ายเพียงใด

วิธีการลบภาพนักเทียบท่าทั้งหมด

บริษัทคลาวด์และไอทีจำนวนมากพบว่ามีประโยชน์อย่างยิ่ง และสมควรได้รับความนิยมอย่างแน่นอน

ถึงกระนั้นสิ่งนี้ก็ไม่ได้ทำให้สมบูรณ์แบบ หลักฐานสามารถเห็นได้ในข้อจำกัดที่มาพร้อมกับการลบภาพ วอลุ่ม คอนเทนเนอร์ และเครือข่าย แม้ว่าคำสั่งเหล่านี้จะใช้ได้ แต่ก็ไม่ครอบคลุมเท่าที่ผู้ใช้ต้องการ

ที่นี่ คุณจะเห็นปัญหาหลักที่ผู้ใช้พบ รวมถึงวิธีแก้ไขสำหรับพวกเขา คุณจะได้เรียนรู้วิธีลบรูปภาพและคอนเทนเนอร์ด้วยวิธีง่ายๆ

ปัญหา

เทคโนโลยีคอนเทนเนอร์ให้วิธีการแสดงภาพระบบปฏิบัติการ อนุญาตให้รวมแอปเป็นแพ็กเกจพร้อมทั้งหมดที่ใช้ในการเรียกใช้ ซึ่งช่วยให้แอปทำงานเป็นอิสระจากระบบปฏิบัติการ

คอนเทนเนอร์อิมเมจเป็นแพ็กเกจแอปที่ปฏิบัติการได้ในตัวเองซึ่งมีทุกอย่างที่จำเป็นสำหรับแอปเพื่อให้ทำงานได้อย่างถูกต้อง รันไทม์ โค้ด คอนฟิกูเรชัน เครื่องมือระบบและไลบรารีมีอยู่ในแต่ละอิมเมจ

เมื่อคุณใช้ Docker ภาพเหล่านี้จะสะสม เมื่อเวลาผ่านไป รูปภาพ วอลุ่มข้อมูล และคอนเทนเนอร์ที่ไม่ได้ใช้งานจำนวนมากจะถูกสะสม ทำให้เกิดสภาพแวดล้อม Docker ที่แออัด เมื่อสิ่งนี้เกิดขึ้น จำเป็นต้องรีเฟรชสภาพแวดล้อมเพื่อให้แพลตฟอร์มทำงานได้ตามที่ควรจะเป็น

มีคำสั่งหลายคำสั่งที่สามารถทำให้เกิดสิ่งนี้ได้ ลองมาดูวิธีหลักในการขจัดความยุ่งเหยิงของสภาพแวดล้อม Docker ของคุณ

การลบ Docker Images

ก่อนที่คุณจะสามารถลบภาพที่ไม่จำเป็น คุณต้องแยกความแตกต่างออกจากภาพที่มีประโยชน์ สามารถทำได้โดยง่ายโดยการแสดงรายการรูปภาพทั้งหมดที่ระบบของคุณมีอยู่โดยใช้คำสั่งการจัดการรูปภาพ

นี่คือสิ่งที่ดูเหมือน:

$ docker image #list ล่าสุดสร้าง images

หรือ

$ docker image -a #list all images

ด้วยคำสั่งที่สอง คุณจะเห็นภาพนักเทียบท่าทั้งหมดของคุณ สิ่งที่คุณต้องทำคือค้นหาสิ่งที่เรียกว่า 'ภาพที่ห้อยต่องแต่ง' เหล่านี้คืออิมเมจ Docker ทั้งหมดที่ไม่มีแท็ก หากไม่มีแท็ก จะไม่มีการเชื่อมต่อกับรูปภาพที่แท็ก ซึ่งหมายความว่ารูปภาพเหล่านี้ไม่มีประโยชน์อีกต่อไป

คุณสามารถลบรูปภาพได้ตั้งแต่หนึ่งภาพขึ้นไปโดยใช้รหัสรูปภาพ ในการดำเนินการนี้ ให้ใช้หนึ่งในคำสั่งเหล่านี้:

$ docker rmi d65c4d6a3580 #remove a single image

$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove หลายภาพ

วิธีที่สะดวกกว่าคือการใช้แฟล็กตัวกรอง -f เพื่อแสดงรายการรูปภาพที่ห้อยต่องแต่งทั้งหมด

หากต้องการลบอิมเมจเหล่านี้และล้างพื้นที่ดิสก์ ให้ใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้:

$ docker image prune # ลบรูปภาพที่ห้อยอยู่

หรือ

$ docker rmi $(ภาพนักเทียบท่า -q -f dangling=true)

คุณสามารถลบอิมเมจ Docker ทั้งหมดด้วยวิธีเดียวกัน แสดงรายการโดยใช้คำสั่ง $ docker images –a จากนั้นลบออกโดยใช้สิ่งต่อไปนี้:

$ (นักเทียบท่า rmi $ (ภาพนักเทียบท่า -a -q)

อีกทางเลือกหนึ่งคือการลบภาพที่เป็นไปตามรูปแบบบางอย่าง หากต้องการแสดงรายการให้ใช้คำสั่งต่อไปนี้:

$ ภาพนักเทียบท่า -a | grep "รูปแบบ"

จากนั้นลบออกโดยใช้:

$ ภาพนักเทียบท่า -a | grep "รูปแบบ" | awk '{พิมพ์ $3}' | xargs นักเทียบท่า rmi

การถอดคอนเทนเนอร์

อีกสิ่งหนึ่งที่คุณอาจต้องการทำหลังจากทำงานกับ Docker เป็นระยะเวลาหนึ่งคือลบคอนเทนเนอร์อย่างน้อยหนึ่งรายการ

คล้ายกับการลบรูปภาพ คุณต้องแสดงรายการโดยใช้คำสั่งต่อไปนี้:

$ นักเทียบท่า ps

หรือ

$ นักเทียบท่า ps -a

เมื่อคุณพบคอนเทนเนอร์ที่คุณต้องการนำออก ให้ใช้ ID ของคอนเทนเนอร์นั้นทำ

$ docker rm 0fd99ee0cb61 #remove a single container

$ นักเทียบท่า rm 0fd99ee0cb61 0fd99ee0cb61 # ลบหลายคอนเทนเนอร์

ในกรณีที่คอนเทนเนอร์ที่คุณพยายามลบกำลังทำงาน คุณสามารถใช้คำสั่งต่อไปนี้เพื่อหยุดการทำงาน:

$ นักเทียบท่าหยุด 0fd99ee0cb61

$ นักเทียบท่า rm -f 0fd99ee0cb61

สุดท้าย คุณสามารถหยุดและลบคอนเทนเนอร์ที่ไม่จำเป็นทั้งหมดโดยใช้คำสั่งต่อไปนี้:

$ docker stop $(docker ps -a -q) #stop all containers

$ docker container prune # ลบคอนเทนเนอร์ที่หยุดทั้งหมดแบบโต้ตอบ

หรือ

$ นักเทียบท่า rm $(นักเทียบท่า ps -qa)

วิธีนี้จะช่วยให้คุณเพิ่มพื้นที่ว่างในดิสก์อันมีค่าและเริ่มต้นใหม่ได้

คำสุดท้าย

อย่างที่คุณเห็น การลบอิมเมจและคอนเทนเนอร์ของ Docker ไม่ได้น่ากลัวอย่างที่คิด เมื่อคุณรู้คำสั่งเหล่านี้แล้ว คุณสามารถควบคุมประสบการณ์ Docker ของคุณได้มากขึ้น

แน่นอนว่านี่เป็นเพียงคำสั่งบางส่วนเท่านั้น และคุณสามารถใช้ชุดค่าผสมอื่นๆ ได้หลากหลาย อย่างไรก็ตาม สิ่งเหล่านี้จะทำงานได้ดี ดังนั้นอย่าลังเลที่จะลองใช้

โพสต์ล่าสุด

$config[zx-auto] not found$config[zx-overlay] not found