Почему в Docker появляется изображение «нет» и как его избежать - PullRequest
0 голосов
/ 09 ноября 2018

Когда я запускаю команду docker-compose build, чтобы перестроить образ в Docker, потому что я что-то изменил в Dockerfile, иногда я получаю «нет» тегов изображения. Как мы можем избежать этого факта? Я хочу восстановить изображение, но изображение none не должно отображаться.

REPOSITORY  TAG            IMAGE ID            CREATED             SIZE
magento2    latest         b4dce4dcbd4f        16 hours ago        516MB
<none>      <none>         b4ffce2bf91e        16 hours ago        519MB
<none>      <none>         a1aedb60c82a        17 hours ago        516MB
<none>      <none>         ec9a14ae856c        20 hours ago        519MB
<none>      <none>         ef8eba6874cc        23 hours ago        516MB
<none>      <none>         0e53a8b8c303        23 hours ago        516MB
php         7.1-apache     93e6fb4b13e1        3 weeks ago         369MB
mysql       5.6.39         079344ce5ebd        7 months ago        256MB

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

Ниже приведены некоторые детали из Что такое изображения Docker <none>:<none>?

Добро <none>:<none>

Это промежуточные изображения, которые можно увидеть с помощью docker images -a. Они не приводят к проблеме дискового пространства, но это определенно проблема с экраном. Поскольку все эти <none>:<none> изображения могут быть довольно запутанными, как и то, что они означают.

Плохой <none>:<none>

Это образы , висящие , которые могут вызвать проблемы с дисковым пространством. Эти <none>:<none> изображения перечислены как часть docker images и должны быть удалены.

(слой висячей файловой системы в Docker - это то, что не используется и на него не ссылаются никакие изображения. Следовательно, нам нужен механизм для очистки этих висячих изображений в Docker)

Итак,

  • , если ваш случай связан с dangling изображениями, можно удалить их с помощью:

    docker rmi $(docker images -f "dangling=true" -q)
    
  • если ваш случай связан с intermediate изображениями, то их можно сохранить, другие изображения указывают на них.

0 голосов
/ 11 июня 2019

По моему опыту, большинство <none> изображений хранятся во временных контейнерах. Благодаря архитектуре Docker эти контейнеры сохраняются даже после их остановки. Вы можете проверить количество остановленных контейнеров, используя

docker ps -a

Таким образом, для удаления <none> изображений сначала необходимо удалить ненужные контейнеры:

docker container prune
docker image prune
0 голосов
/ 09 ноября 2018

Для удаления <none> слоев используйте:

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...