Fornex
Европейский
хостинг

    Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.

    file

    С руководством по установке Docker можно ознакомиться здесь.

    Очистка всех неиспользуемых или не связанных с контейнерами образов, контейнеров

    В Docker имеется команда отвечающая за эти действия:

    docker system prune  
    
    root@kvmde68-19464:~# docker system prune  
    WARNING! This will remove:  
      - all stopped containers
      - all networks not used by at least one container
      - all dangling images
      - all dangling build cache
    
    Are you sure you want to continue? [y/N] 
    
    

    Для того чтобы удалить все остановленные контейнеры и неиспользуемые образы, необходимо добавить в эту команду флаг -a:

    docker system prune -a  
    
    root@kvmde68-19464:~# docker system prune -a  
    WARNING! This will remove:  
      - all stopped containers
      - all networks not used by at least one container
      - all images without at least one container associated to them
      - all build cache
    
    Are you sure you want to continue? [y/N] y  
    Deleted Images:  
    untagged: ubuntu:latest  
    untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7  
    deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01  
    deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3  
    deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47  
    deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387  
    deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f
    
    

    Удаление образов Docker

    • Удаление одного или нескольких конкретных образов

    Команда docker images с флагом -a, позволит найти идентификатор удаляемых образов, эта команда покажет вам все образы, включая промежуточные слои образов.

    docker images -a  
    
    root@kvmde68-19464:~# docker images -a  
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
    debian              latest              5971ee6076a0        3 weeks ago         114MB  
    ubuntu              latest              1d622ef86b13        6 weeks ago         73.9MB  
    centos              latest              470671670cac        4 months ago        237MB
    
    

    Когда вы определитесь с составом удаляемых образов, вы можете передать их идентификаторы или теги в docker rmi:

    docker rmi ubuntu  
    
    root@kvmde68-19464:~# docker rmi ubuntu  
    Untagged: ubuntu:latest  
    Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7  
    Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01  
    Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3  
    Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47  
    Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387  
    Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f  
    
    • Удаление образов, не привязанных к контейнеру

    Образы Docker состоят из нескольких слоев. Несвязанные образы - это слои, не имеющие связей с каким-либо образами с тегами. У них нет никакого назначения, и они просто занимают место на диске. Для их поиска можно использовать флаг фильтра -f со значением dangling=true в команде docker images.

    docker images -f dangling=true  
    

    Удаление:

    docker images purge  
    
    • Удаление образов по шаблону

    Вы можете найти все образы, соответствующие определенному шаблону, используя комбинацию команд docker images и grep.

    docker images -a |  grep "centos"  
    
    root@kvmde68-19464:~# docker images -a |  grep "centos"  
    centos              latest              470671670cac        4 months ago        237MB  
    

    Вы можете удалить их, используя awk для передачи идентификаторов в docker rmi.

    docker images -a | grep "centos" | awk '{print $3}' | xargs docker rmi  
    
    root@kvmde68-19464:~# docker images -a | grep "centos" | awk '{print $3}' | xargs docker rmi  
    Untagged: centos:latest  
    Untagged: centos@sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700  
    Deleted: sha256:470671670cac686c7cf0081e0b37da2e9f4f768ddc5f6a26102ccd1c6954c1ee  
    Deleted: sha256:0683de2821778aa9546bf3d3e6944df779daba1582631b7ea3517bb36f9e4007  
    
    • Удаление всех образов

    Для вывода всех образов Docker в системе нужно добавить флаг -a в команду docker images.

    docker images -a  
    
    root@kvmde68-19464:~# docker images -a  
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
    debian              latest              5971ee6076a0        3 weeks ago         114MB  
    ubuntu              latest              1d622ef86b13        6 weeks ago         73.9MB  
    

    Если вы хотите удалить все образы, добавьте флаг -q для передачи идентификатора образа в docker rmi:

    docker rmi $(docker images -a -q)  
    
    root@kvmde68-19464:~# docker rmi $(docker images -a -q)  
    Untagged: debian:latest  
    Untagged: debian@sha256:4ab3309ba955211d1db92f405be609942b595a720de789286376f030502ffd6f  
    Deleted: sha256:5971ee6076a06b695a62d8dbb5e4c977f2db1e45902f5bb8d4b74511d9649dde  
    Deleted: sha256:8c02234b86056c009036ff0c31efb9a726412392d9872dacf95103767ac3b101  
    Untagged: ubuntu:latest  
    Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7  
    Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01  
    Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3  
    Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47  
    Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387  
    Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f  
    

    Удаление контейнеров

    • Удаление одного или нескольких конкретных контейнеров

    Используйте команду docker ps с флагом -a для поиска имен или идентификаторов контейнеров, которые вы хотите удалить:

    docker ps -a  
    
    root@kvmde68-19464:~# docker ps -a  
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                        PORTS               NAMES  
    f0fd79d66827        ubuntu              "/bin/bash"         About a minute ago   Exited (130) 24 seconds ago                       magical_lamport
    
    

    Удаление:

    docker rm ID_or_Name ID_or_Name  
    
    • Удаление контейнера при выходе

    Если вы создаете контейнер, который вам не будет нужен после завершения его использования, вы можете использовать команду docker run --rm для его автоматического удаления при выходе.

    Запуск и удаление:

    docker run --rm image_name  
    
    • Удаление всех контейнеров, из которых выполнен выход

    Вы можете найти контейнеры с помощью команды docker ps -a и отфильтровать их по статусу:

    • created (создан);
    • restarting (перезапускается);
    • running (работает);
    • paused (пауза);
    • exited (выполнен выход).

    Для того чтобы просмотреть список контейнеров, из которых выполнен выход, используйте флаг -f для фильтрации по статусу.

    docker ps -a -f status=exited  
    

    Убедитесь, что вы хотите удалить эти контейнеры, и используйте флаг -q для передачи идентификаторов в команду docker rm.

    docker rm $(docker ps -a -f status=exited -q)  
    
    • Удаление контейнеров с использованием нескольких фильтров

    Фильтры Docker можно комбинировать, повторяя флаг фильтра с дополнительным значением. В результате выводится список контейнеров, соответствующих любому из указанных условий.

    docker ps -a -f status=exited -f status=created  
    

    Если вы хотите удалить все контейнеры со статусом Created или Exited, то можно использовать несколько фильтров:

    docker rm $(docker ps -a -f status=exited -f status=created -q)  
    
    • Удаление контейнеров по шаблону

    Чтобы найти все контейнеры, соответствующие определенному шаблону, используйте сочетание команд docker ps и grep.

    docker ps -a |  grep "pattern”  
    

    Когда вы будете удовлетворены списком удаляемых контейнеров, используйте awk и xargs для передачи идентификаторов в команду docker rmi.

    docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi  
    
    • Остановка и удаление всех контейнеров

    Для просмотра контейнеров в системе используется команда docker ps с флагом -a будет выведен список всех контейнеров.

    docker ps -a  
    

    Если вы хотите удалить их, добавьте флаг -q для передачи их идентификаторов командам docker stop и docker rm:

    docker stop $(docker ps -a -q)  
    docker rm $(docker ps -a -q)  
    
    root@kvmde68-19464:~# docker stop $(docker ps -a -q)  
    f0fd79d66827  
    root@kvmde68-19464:~# docker rm $(docker ps -a -q)  
    Error response from daemon: You cannot remove a running container f0fd79d66827b9b9e37b88048b18309eeb450a81823ffaa4c66046c4b93bb299. Stop the container before attempting removal or force remove
    
    

    Если у Вас возникли трудности в настройке или появились дополнительные вопросы, вы всегда можете обращаться в нашу службу поддержки через систему тикетов.