หากคุณต้องการแพลตฟอร์มคอนเทนเนอร์โอเพ่นซอร์สที่ครอบคลุมสำหรับการสร้างความเป็นอิสระระหว่างแอพและโครงสร้างพื้นฐาน Docker เป็นทางออกที่ปลอดภัยที่สุดของคุณ หากคุณมีโอกาสใช้งานคุณจะรู้ว่ามันมีความสามารถและใช้งานง่ายเพียงใด
บริษัท คลาวด์และไอทีจำนวนมากพบว่ามีประโยชน์มากและสมควรได้รับความนิยม
แต่ถึงกระนั้นก็ไม่ได้ทำให้มันสมบูรณ์แบบ การพิสูจน์สามารถดูได้ในข้อ จำกัด ที่มาพร้อมกับการลบภาพ, ปริมาณ, ภาชนะบรรจุและเครือข่าย แม้ว่าคำสั่งเหล่านี้จะพร้อมใช้งาน แต่ก็ไม่ครอบคลุมเท่าที่ผู้ใช้อาจต้องการ
ที่นี่คุณจะเห็นปัญหาหลักที่ผู้ใช้พบเช่นเดียวกับการแก้ปัญหาสำหรับพวกเขา คุณจะได้เรียนรู้วิธีการลบภาพและตู้คอนเทนเนอร์ในวิธีที่ง่าย
ปัญหา
เทคโนโลยีคอนเทนเนอร์เป็นวิธีการแสดงภาพระบบปฏิบัติการ อนุญาตให้แอปพลิเคชั่นบรรจุด้วยทั้งหมดที่ใช้ในการเรียกใช้ซึ่งอนุญาตให้แอปดำเนินการอย่างอิสระจากระบบปฏิบัติการ
รูปภาพคอนเทนเนอร์เป็นแพคเกจแอปที่ปฏิบัติการได้ซึ่งบรรจุทุกอย่างที่จำเป็นสำหรับแอปให้ทำงานได้อย่างถูกต้อง รันไทม์รหัสการกำหนดค่าและเครื่องมือระบบและไลบรารีมีอยู่ในแต่ละอิมเมจ
เมื่อคุณใช้ Docker ภาพเหล่านี้จะสะสม เมื่อเวลาผ่านไปจำนวนรูปภาพที่ไม่ได้ใช้ปริมาณข้อมูลและตู้คอนเทนเนอร์จำนวนมากจะถูกสะสมไว้เพื่อสร้างสภาพแวดล้อมของนักเทียบท่าที่แออัด เมื่อสิ่งนี้เกิดขึ้นจำเป็นต้องรีเฟรชสภาพแวดล้อมเพื่อให้แพลตฟอร์มทำงานได้ตามที่ควร
มีหลายคำสั่งที่สามารถทำให้สิ่งนี้เกิดขึ้นได้ดังนั้นลองมาดูวิธีหลัก ๆ ในการขจัดความยุ่งเหยิงของสภาพแวดล้อม Docker ของคุณ
การลบภาพนักเทียบท่า
ก่อนที่คุณจะสามารถลบภาพที่ไม่ต้องการคุณต้องแยกความแตกต่างจากรูปภาพที่มีประโยชน์ ซึ่งสามารถทำได้อย่างง่ายดายโดยการแสดงรายการรูปภาพทั้งหมดที่ระบบของคุณมีโดยใช้คำสั่งการจัดการรูปภาพ
นี่คือสิ่งที่ดูเหมือนว่า:
$ docker image #list the most recently created images
หรือ
$ docker image -a #list all images
ด้วยคำสั่งที่สองคุณจะเห็นภาพนักเทียบท่าทั้งหมดของคุณ สิ่งที่คุณต้องทำคือค้นหา 'ภาพห้อย' ที่เรียกว่า ภาพเหล่านี้เป็นภาพนักเทียบท่าทั้งหมดที่ไม่มีแท็ก หากไม่มีแท็กจะไม่มีการเชื่อมต่อกับรูปภาพที่ติดแท็กซึ่งหมายความว่าพวกเขาไม่มีประโยชน์อีกต่อไป
คุณสามารถลบภาพอย่างน้อยหนึ่งภาพโดยใช้รหัสภาพ เมื่อต้องการทำสิ่งนี้ใช้หนึ่งในคำสั่งเหล่านี้:
$ docker rmi d65c4d6a3580 #remove a single image
$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
ทางออกที่สะดวกกว่าคือใช้แฟล็กตัวกรอง -f เพื่อแสดงรายการรูปภาพที่ห้อยอยู่ทั้งหมด
ในการลบอิมเมจเหล่านี้และล้างพื้นที่ดิสก์ให้ใช้หนึ่งในคำสั่งต่อไปนี้:
$ docker image prune #interactively remove dangling images
หรือ
$ docker rmi $(docker images -q -f dangling=true)
คุณสามารถลบภาพนักเทียบท่าทั้งหมดได้ในลักษณะเดียวกัน แสดงรายการโดยใช้คำสั่ง $ docker images –a แล้วลบออกโดยใช้ข้อมูลต่อไปนี้:
$ (docker rmi $(docker images -a -q)
อีกทางเลือกหนึ่งคือการลบภาพที่เป็นไปตามรูปแบบที่แน่นอน ในการแสดงรายการให้ใช้คำสั่งต่อไปนี้:
$ docker images -a | grep "pattern"
จากนั้นลบออกโดยใช้:
$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
การลบตู้คอนเทนเนอร์
อีกสิ่งหนึ่งที่คุณอาจต้องการทำหลังจากทำงานกับ Docker เป็นระยะเวลาหนึ่งคือลบหนึ่งหรือมากกว่าคอนเทนเนอร์
เช่นเดียวกับการลบภาพคุณต้องแสดงรายการโดยใช้คำสั่งต่อไปนี้:
$ docker ps
หรือ
$ docker ps -a
เมื่อคุณพบภาชนะที่คุณต้องการลบให้ใช้ ID ของพวกเขาที่จะทำมัน
$ docker rm 0fd99ee0cb61 #remove a single container
$ docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
ในกรณีที่คอนเทนเนอร์ที่คุณพยายามลบกำลังทำงานอยู่คุณสามารถใช้คำสั่งต่อไปนี้เพื่อหยุด:
$ docker stop 0fd99ee0cb61
$ docker rm -f 0fd99ee0cb61
สุดท้ายคุณสามารถหยุดและลบคอนเทนเนอร์ที่ไม่จำเป็นทั้งหมดโดยใช้คำสั่งต่อไปนี้:
$ docker stop $(docker ps -a -q) #stop all containers
$ docker container prune #interactively remove all stopped containers
หรือ
$ docker rm $(docker ps -qa)
วิธีนี้จะช่วยให้คุณเพิ่มพื้นที่ว่างในดิสก์ที่มีค่าและเริ่มต้นใหม่
คำสุดท้าย
อย่างที่คุณเห็นการลบอิมเมจและคอนเทนเนอร์ออกไปนั้นไม่น่ากลัวเท่าที่ควร เมื่อคุณทราบคำสั่งเหล่านี้แล้วคุณสามารถควบคุมประสบการณ์นักเทียบท่าได้มากขึ้น
แน่นอนว่านี่เป็นเพียงคำสั่งบางคำสั่งและคุณสามารถใช้ชุดค่าผสมอื่น ๆ ได้หลากหลาย อย่างไรก็ตามสิ่งเหล่านี้จะทำงานได้ดีดังนั้นอย่าลังเลที่จะลองใช้