yn2011's blog

技術メモ

docker rmiで image is referenced in multiple repositoriesが発生した

環境

  • macOS 10.14.6
  • Docker version 19.03.5, build 633a0ea

Dockerの掃除をしていたら

  • docker images を全削除するを参考に、イメージとコンテナの掃除をしていた
  • その中になぜか削除できないイメージがいた
~/.ghq/github.com/pokuwagata/go-gin-gorm-heroku-example master* 11s
❯ docker images
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
portfolio-go-mysql-docker-webapp_nginx   latest              8a2fb25a19f5        10 months ago       16MB
nginx                                    1.14-alpine         8a2fb25a19f5        10 months ago       16MB

~/.ghq/github.com/pokuwagata/go-gin-gorm-heroku-example master*
❯ docker images -aq | xargs docker rmi
Error response from daemon: conflict: unable to delete 8a2fb25a19f5 (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 8a2fb25a19f5 (must be forced) - image is referenced in multiple repositories

An image will be listed more than once if it has multiple repository names or tags. This single image (identifiable by its matching IMAGE ID) uses up the SIZE listed only once.

docker images | Docker Documentation

  • そういうわけで、idではなく、リポジトリ(とタグ)を指定してdocker rmiすれば削除できる
❯ docker rmi portfolio-go-mysql-docker-webapp_nginx

結果

スッキリ

~/.ghq/github.com/pokuwagata/go-gin-gorm-heroku-example master*
❯ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

~/.ghq/github.com/pokuwagata/go-gin-gorm-heroku-example master*
❯ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

定期的に掃除していきましょう