Android

Liman işçisi kapsayıcılarını, resimleri, birimleri ve ağları kaldırma

Docker Tutorial for Beginners 8 - Build and Run C++ Applications in a Docker Container

Docker Tutorial for Beginners 8 - Build and Run C++ Applications in a Docker Container

İçindekiler:

Anonim

Docker, uygulamaları hemen hemen her yerde çalışabilecek taşınabilir, kendi kendine yeten kaplar olarak hızlı bir şekilde oluşturmanıza, test etmenize ve dağıtmanıza olanak tanır.

Docker, siz açıkça belirtmedikçe kapsayıcılar, resimler, birimler ve ağlar gibi kullanılmayan nesneleri kaldırmaz. Docker ile çalışırken, önemli miktarda disk alanı tüketen ve Docker komutları tarafından üretilen çıktıyı dağıtan çok sayıda kullanılmayan nesneyi kolayca biriktirebilirsiniz.

Bu kılavuz, Docker kullanıcılarının sistemlerini düzenli tutmasına ve kullanılmayan Docker kaplarını, resimlerini, birimlerini ve ağlarını kaldırarak disk alanı boşaltmasına yardımcı olmak için bir "kopya kağıdı" görevi görür.

Kullanılmayan Tüm Nesneleri Kaldırma

docker system prune komutu durdurulan tüm kapları, tüm sarkan görüntüleri ve kullanılmayan tüm ağları kaldıracaktır:

docker system prune

--force istenir, istemi atlamak için -f veya --force bayrağını kullanın.

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

Docker Kaplarını Çıkarma

--rm kapsayıcıları, --rm bayrağını kullanarak kapsayıcıyı başlatmadığınız sürece durdurduğunuzda otomatik olarak kaldırılmaz.

Bir veya daha fazla kabı çıkarın

Bir veya daha fazla Docker görüntüsünü kaldırmak için docker container rm komutunu ve ardından kaldırmak istediğiniz kapsayıcıların kimliğini kullanın.

-a bayrağını docker container ls komutuna ileterek tüm kapsayıcıların bir listesini alabilirsiniz:

docker container ls -a

Çıktı şöyle görünmelidir:

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

Silmek istediğiniz kapsayıcıların CONTAINER ID öğrendikten sonra, docker container rm komutuna iletin. Örneğin, yukarıdaki çıktıda listelenen ilk iki kabı kaldırmak için şunları çalıştırın:

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.

Durdurulmuş tüm kapları çıkarın

Kaldırma komutunu gerçekleştirmeden önce, aşağıdaki komutu kullanarak kaldırılacak olan tüm çalışmayan (durdurulmuş) kapların bir listesini alabilirsiniz:

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

Durdurulmuş tüm kapsayıcıları kaldırmak için docker container prune komutunu kullanın:

docker container prune

--force istenir, istemi atlamak için -f veya --force bayrağını kullanın.

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

Filtreleri kullanarak kapları çıkarın

docker container prune komutu filtreleme bayrağını kullanarak filtreyi koşullara göre kaldırmanıza izin verir - filtre.

Bu makalenin yazıldığı sırada, şu anda desteklenen filtreler until ve label . Birden çok filtre bayrağı kullanarak birden fazla filtre kullanabilirsiniz.

Örneğin, 12 saatten daha önce oluşturulan tüm görüntüleri kaldırmak için şunu çalıştırın:

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

Tüm kapları durdurun ve çıkarın

Docker docker container ls -aq komutunu kullanarak sisteminizdeki tüm Docker kapsayıcılarının bir listesini alabilirsiniz.

Çalışan tüm docker container stop için docker container stop komutunu ve ardından tüm kapsayıcı kimliklerinin bir listesini kullanın.

docker container stop $(docker container ls -aq)

Tüm kapsayıcılar durdurulduktan sonra, docker container rm komutunu ve ardından kapsayıcı kimliği listesini kullanarak bunları kaldırabilirsiniz.

docker container rm $(docker container ls -aq)

Docker Görüntülerini Kaldırma

Bir veya daha fazla resmi kaldırma

Bir veya daha fazla Docker görüntüsünü kaldırmak için, kaldırmak istediğiniz görüntülerin kimliğini bulmak üzere docker images ls komutunu kullanın.

docker image ls

Çıktı şöyle görünmelidir:

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

Kaldırmak istediğiniz görüntüleri bulduktan sonra, IMAGE ID docker image rm komutuna docker image rm . Örneğin, yukarıdaki çıktıda listelenen ilk iki görüntüyü kaldırmak için şunu çalıştırın:

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

Sarkan görüntüleri kaldır

Docker, sarkan ve kullanılmayan görüntüleri kaldırmak için kullanılabilen bir docker image prune komutu sağlar.

Sarkan görüntü, etiketlenmemiş ve herhangi bir kap tarafından kullanılmayan bir görüntüdür. Sarkan görüntüleri kaldırmak için şunu yazın:

docker image prune

--force istenir, istemi atlamak için -f veya --force bayrağını kullanın.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Sarkan görüntüleri kaldırırken, oluşturduğunuz görüntüler etiketlenmezse, bunlar da kaldırılır.

Kullanılmayan tüm görüntüleri kaldırın

Yalnızca sarkan olanlar değil, varolan herhangi bir kapsayıcı tarafından başvurulan tüm görüntüleri kaldırmak için, -a bayrağıyla prune komutunu kullanın:

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

Filtreleri kullanarak görüntüleri kaldırma

docker image prune komutuyla, filtreleme bayrağını kullanarak filtreyi belirli bir koşula göre kaldırabilirsiniz - filtre.

Bu makalenin yazıldığı sırada, şu anda desteklenen filtreler until ve label . Birden çok filtre bayrağı kullanarak birden fazla filtre kullanabilirsiniz.

Örneğin, 12 saatten daha önce oluşturulan tüm görüntüleri kaldırmak için şunu çalıştırırsınız:

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

Docker Birimlerini Kaldırma

Bir veya daha fazla birimi kaldırma

Bir veya daha fazla Docker docker volume ls kaldırmak için, kaldırmak istediğiniz birimlerin kimliğini bulmak üzere docker volume ls komutunu kullanın.

docker volume ls

Çıktı şöyle görünmelidir:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Kaldırmak istediğiniz birimlerin VOLUME NAME bulduğunuzda, bunları docker volume rm komutuna docker volume rm . Örneğin, yukarıdaki çıktıda listelenen ilk birimi kaldırmak için şunu çalıştırın:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Kullanılmayan tüm birimleri kaldırın

Kullanılmayan tüm birimleri kaldırmak için docker image prune komutunu kullanın:

docker volume prune

--force istenir, istemi atlamak için -f veya --force bayrağını kullanın.

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

Docker Ağlarını Kaldırma

Bir veya daha fazla ağı kaldırma

Bir veya daha fazla Docker ağını kaldırmak için kaldırmak istediğiniz ağların kimliğini bulmak üzere docker network ls komutunu kullanın.

docker network ls

Çıktı şöyle görünmelidir:

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

Kaldırmak istediğiniz ağları bulduktan sonra, NETWORK ID docker network rm komutuna docker network rm . Örneğin my-bridge-network run adında ağı kaldırmak için:

docker network rm c520032c3d31

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

Kullanılmayan tüm ağları kaldır

Kullanılmayan tüm ağları kaldırmak için docker network prune komutunu kullanın.

docker network prune

--force istenir, istemi atlamak için -f veya --force bayrağını kullanın.

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

Filtreleri kullanarak ağları kaldırma

docker network prune komutu ile ağları filtreleme bayrağını kullanarak filtreleyebilirsiniz --filter .

Bu makalenin yazıldığı sırada, şu anda desteklenen filtreler until ve label . Birden çok filtre bayrağı kullanarak birden fazla filtre kullanabilirsiniz.

Örneğin, 12 saatten daha önce oluşturulan tüm ağları kaldırmak için şunu çalıştırın:

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

Sonuç

Bu kılavuzda, Docker kapsayıcılarını, resimleri, birimleri ve ağları kaldırmak için bazı yaygın komutları gösterdik.

Ayrıca resmi Docker belgelerine de bakmalısınız.

liman işçisi