"изображения докеров" показывают изображение, "docker rmi" говорит "нет такого изображения" или "ссылка не существует"
По некоторым причинам я не могу удалить изображение докеров. Вот вывод
Версия ОС:
Linux localhost.localdomain 4.12.13-300.fc26.x86_64 #1 SMP Thu Sep 14 16:00:38 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
версия докера
Client:
Version: 17.06.2-ce
API version: 1.30
Go version: go1.8.3
Git commit: cec0b72
Built: Tue Sep 5 20:05:40 2017
OS/Arch: linux/amd64
Server:
Version: 17.06.2-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: cec0b72
Built: Tue Sep 5 20:06:58 2017
OS/Arch: linux/amd64
Experimental: false'
У меня нет контейнера:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
и два изображения, которые я хочу удалить:
$ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
gcc 7.1.0 855a4f4d1cd9 2 months ago 1.64GB
hello-world latest 1815c82652c0 3 months ago 1.84kB
Мои попытки:
$ docker rmi -f gcc:7.1.0
Error response from daemon: No such image: gcc:7.1.0
$ docker rmi -f 855a4f4d1cd9
Error response from daemon: reference does not exist
$ docker rmi -f hello-world:latest
Error response from daemon: No such image: hello-world:latest
$ docker rmi -f 1815c82652c0
Error response from daemon: reference does not exist44
Какая причина может быть и как я могу удалить эти изображения?
Ответы
Ответ 1
Это означает, что ваше состояние докера повреждено, и вам нужно очистить полное состояние
sudo service docker stop
sudo rm -rf /var/lib/docker
sudo service docker start
Это запустит докер без каких-либо существующих данных. Попробуйте потянуть за удаление изображения после этого и посмотреть, все ли работает. Если это не так, то есть какая-то проблема, которая должна быть изучена
Ответ 2
Попробуйте сначала docker image prune
или даже снимите снимок docker image prune -a
, чтобы удалить любое изображение, не использовавшееся/не связанное, по крайней мере, с одним контейнером.
Если они все еще перечислены, перезапустите демон своего докера.
Ответ 3
Чтобы избежать удаления всех данных докера и начать с нуля, вы также можете попытаться вручную очистить битые ссылки, сопоставив /var/lib/docker/image/devicemapper/imagedb/content/sha256
ссылки на изображения с файлами в /var/lib/docker/image/devicemapper/imagedb/content/sha256
, Как только соответствующий файл будет удален, он больше не будет отображаться при последующих вызовах docker images
, и перезапуск демона не требуется.