Как принудительно удалить образ Docker с помощью Terraform Destory
Я следил за учебником по terraform.io, в котором я подготовил образ докера и контейнер с помощью terraform, а затем уничтожил стек terraform. Однако я получаю следующую ошибку:
Error: Unable to remove Docker image:
Error response from daemon: conflict: unable to delete 540a289bab6c (must be forced) -
image is being used by stopped container ae12197d265d
Я знаю, что собственное решение Docker для этого просто работает
docker rmi -f 540a289bab6c
. Однако мне было интересно, есть ли здесь терраформный подход?
Документы для ресурса terraform
docker_image
показать причину, по которой terraform попытался уничтожить изображение при
terraform destroy
: шаблон
main.tf
имел
keep-locally
установлен в
true
. Но не говорится, как вызвать это разрушение.
В
main.tf
из учебника выглядит следующим образом:
terraform {
required_providers {
docker = {
source = "terraform-providers/docker"
}
}
}
provider "docker" {}
resource "docker_image" "nginx" {
name = "nginx:latest"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.latest
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
Так как мне заставить
terraform destroy
работать с этим шаблоном, не прибегая к ручному вмешательству, используя собственные инструменты Docker?
1 ответ
Сообщение об ошибке указывает на то, что существует другой контейнер, использующий то же изображение. Возможно, отдельный док-контейнер подготовлен вне terraform и использует тот же образ докера nginx в руководстве. Проверьте свои
docker ps -a
чтобы увидеть, есть ли такой контейнер, если да, просто запустите
docker rm -f <container_name>
чтобы удалить его, и ваше уничтожение терраформ должно работать.