Android

วิธีลบคอนเทนเนอร์นักเทียบท่ารูปภาพปริมาณและเครือข่าย

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

สารบัญ:

Anonim

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

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

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

การลบวัตถุที่ไม่ได้ใช้ทั้งหมด

คำสั่งการ docker system prune จะลบคอนเทนเนอร์ที่ถูกหยุดทั้งหมดรูปภาพห้อยทั้งหมดและเครือข่ายที่ไม่ได้ใช้ทั้งหมด:

docker system prune

คุณจะได้รับแจ้งให้ดำเนินการต่อใช้แฟ --force -f หรือ --force เพื่อเลี่ยงผ่านพรอมต์

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?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

การถอดตู้เก็บนักเทียบท่า

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

ลบหนึ่งหรือมากกว่าหนึ่งตู้คอนเทนเนอร์

ในการลบอิมเมจ Docker หนึ่งภาพขึ้นไปให้ใช้คำสั่ง docker container rm แล้วตามด้วย ID ของคอนเทนเนอร์ที่คุณต้องการลบ

คุณสามารถรับรายการคอนเทนเนอร์ทั้งหมดโดยส่งผ่านแฟ -a ไปที่ docker container ls สั่ง docker container ls :

docker container ls -a

ผลลัพธ์ควรมีลักษณะดังนี้:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

เมื่อคุณทราบ CONTAINER ID ของคอนเทนเนอร์ที่คุณต้องการลบแล้วให้ส่งไปยังคำสั่ง docker container rm ตัวอย่างเช่นหากต้องการลบสองคอนเทนเนอร์แรกที่แสดงรายการในเอาต์พุตด้านบนให้รัน:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

ลบคอนเทนเนอร์ที่หยุดทั้งหมด

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

docker container ls -a --filter status=exited --filter status=created

หากต้องการลบคอนเทนเนอร์ที่หยุดทำงานทั้งหมดให้ใช้คำสั่ง docker container prune :

docker container prune

คุณจะได้รับแจ้งให้ดำเนินการต่อใช้แฟ --force -f หรือ --force เพื่อเลี่ยงผ่านพรอมต์

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

ลบคอนเทนเนอร์โดยใช้ตัวกรอง

คำสั่ง docker container prune อนุญาตให้คุณลบคอนเทนเนอร์ตามเงื่อนไขโดยใช้แฟ --filter ตัวกรอง --filter

ในช่วงเวลาของการเขียนบทความนี้ตัวกรองที่ได้รับการสนับสนุนในปัจจุบันคือ until และติด label คุณสามารถใช้ตัวกรองมากกว่าหนึ่งตัวได้โดยใช้ตัวกรองหลายตัว - ตัวกรอง

ตัวอย่างเช่นหากต้องการลบภาพทั้งหมดที่สร้างขึ้นนานกว่า 12 ชั่วโมงที่ผ่านมาให้รัน:

docker container prune --filter "until=12h"

หยุดและนำภาชนะทั้งหมดออก

คุณสามารถรับรายการคอนเทนเนอร์ Docker ทั้งหมดบนระบบของคุณโดยใช้ docker container ls -aq

หากต้องการหยุดคอนเทนเนอร์ที่รันอยู่ทั้งหมดให้ใช้คำสั่ง docker container stop ตามด้วยรายการ ID คอนเทนเนอร์ทั้งหมด

docker container stop $(docker container ls -aq)

เมื่อคอนเทนเนอร์ทั้งหมดหยุดทำงานคุณสามารถลบออกได้โดยใช้คำสั่ง docker container rm ตามด้วยรายการ ID คอนเทนเนอร์

docker container rm $(docker container ls -aq)

การลบภาพนักเทียบท่า

ลบภาพหนึ่งภาพขึ้นไป

ในการลบอิมเมจ Docker หนึ่งรูปขึ้นไปใช้ docker images ls สั่ง docker images ls เพื่อค้นหา ID ของอิมเมจที่คุณต้องการลบ

docker image ls

ผลลัพธ์ควรมีลักษณะดังนี้:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

เมื่อคุณพบภาพที่คุณต้องการลบแล้วให้ส่ง IMAGE ID ของพวกเขาไปยังคำสั่ง docker image rm ตัวอย่างเช่นหากต้องการลบภาพสองภาพแรกที่ปรากฏในเอาต์พุตด้านบนให้รัน:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

ลบภาพที่ห้อยอยู่

นักเทียบท่าจัดเตรียมคำสั่งการ docker image prune ที่สามารถใช้เพื่อลบภาพที่มีสีห้อยและที่ไม่ได้ใช้

รูปภาพห้อยต่องแต่งเป็นภาพที่ไม่ได้ติดแท็กและไม่ได้ใช้โดยคอนเทนเนอร์ใด ๆ หากต้องการลบประเภทรูปภาพห้อย:

docker image prune

คุณจะได้รับแจ้งให้ดำเนินการต่อใช้แฟ --force -f หรือ --force เพื่อเลี่ยงผ่านพรอมต์

WARNING! This will remove all dangling images. Are you sure you want to continue? y เมื่อลบภาพที่ห้อยอยู่หากภาพที่คุณสร้างไม่ได้ติดแท็กภาพเหล่านั้นจะถูกลบด้วย

ลบภาพที่ไม่ได้ใช้ทั้งหมด

หากต้องการลบอิมเมจทั้งหมดที่ไม่ได้อ้างถึงโดยคอนเทนเนอร์ที่มีอยู่ใด ๆ ไม่เพียง แต่รูปภาพที่ห้อยอยู่ให้ใช้คำสั่ง prune พร้อมกับแฟ -a :

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

ลบภาพโดยใช้ฟิลเตอร์

ด้วยคำสั่ง docker image prune คำสั่งคุณยังสามารถลบภาพตามเงื่อนไขบางอย่างโดยใช้ธงกรอง - ตัวกรอง

ในช่วงเวลาของการเขียนบทความนี้ตัวกรองที่ได้รับการสนับสนุนในปัจจุบันคือ until และติด label คุณสามารถใช้ตัวกรองมากกว่าหนึ่งตัวได้โดยใช้ตัวกรองหลายตัว - ตัวกรอง

ตัวอย่างเช่นหากต้องการลบภาพทั้งหมดที่สร้างขึ้นนานกว่า 12 ชั่วโมงที่ผ่านมาคุณต้องเรียกใช้:

docker image prune -a --filter "until=12h"

การถอดไดรฟ์ข้อมูลโวลุ่ม

ลบวอลุ่มหนึ่งรายการขึ้นไป

ในการลบวอลุ่ม Docker หนึ่งตัวหรือมากกว่าให้ใช้ docker volume ls สั่ง docker volume ls เพื่อค้นหา ID ของวอลุ่มที่คุณต้องการลบ

docker volume ls

ผลลัพธ์ควรมีลักษณะดังนี้:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

เมื่อคุณพบ VOLUME NAME ของโวลุ่มที่คุณต้องการลบให้ส่งพวกเขาไปยังคำสั่ง docker volume rm ตัวอย่างเช่นหากต้องการลบโวลุ่มแรกที่แสดงในเอาต์พุตด้านบนให้รัน:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

ลบโวลุ่มที่ไม่ได้ใช้ทั้งหมด

หากต้องการลบโวลุ่มที่ไม่ได้ใช้ทั้งหมดให้ใช้คำสั่ง docker image prune คำสั่ง:

docker volume prune

คุณจะได้รับแจ้งให้ดำเนินการต่อใช้แฟ --force -f หรือ --force เพื่อเลี่ยงผ่านพรอมต์

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

การลบเครือข่ายนักเทียบท่า

ลบเครือข่ายหนึ่งเครือข่ายขึ้นไป

หากต้องการลบเครือข่าย Docker หนึ่งเครือข่ายหรือมากกว่าให้ใช้ docker network ls สั่ง docker network ls เพื่อค้นหา ID ของเครือข่ายที่คุณต้องการลบ

docker network ls

ผลลัพธ์ควรมีลักษณะดังนี้:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

เมื่อคุณพบเครือข่ายที่คุณต้องการลบแล้วให้ส่ง NETWORK ID ของตนไปยังคำสั่ง docker network rm ตัวอย่างเช่นการลบเครือข่ายที่มีชื่อ my-bridge-network run:

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

ลบเครือข่ายที่ไม่ได้ใช้ทั้งหมด

ใช้คำสั่ง docker network prune เพื่อลบเครือข่ายที่ไม่ได้ใช้ทั้งหมด

docker network prune

คุณจะได้รับแจ้งให้ดำเนินการต่อใช้แฟ --force -f หรือ --force เพื่อเลี่ยงผ่านพรอมต์

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

ลบเครือข่ายโดยใช้ตัวกรอง

ด้วยคำสั่ง docker network prune คุณสามารถลบเครือข่ายตามเงื่อนไขโดยใช้การตั้งค่าสถานะการกรอง - ตัวกรอง

ในช่วงเวลาของการเขียนบทความนี้ตัวกรองที่ได้รับการสนับสนุนในปัจจุบันคือ until และติด label คุณสามารถใช้ตัวกรองมากกว่าหนึ่งตัวได้โดยใช้ตัวกรองหลายตัว - ตัวกรอง

ตัวอย่างเช่นหากต้องการลบเครือข่ายทั้งหมดที่สร้างมากกว่า 12 ชั่วโมงที่แล้วให้รัน:

docker network prune -a --filter "until=12h"

ข้อสรุป

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

คุณควรตรวจสอบเอกสารนักเทียบท่าอย่างเป็นทางการ

นักเทียบท่า