1

私はterraform.io のチュートリアルに従っていました。このチュートリアルでは、terraform を使用して docker イメージとコンテナーをプロビジョニングし、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 リソースのドキュメントは、terraformdocker_imageがイメージを破棄しようとした理由を示しています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 ネイティブ ツールを使用して手動で介入することなく、このテンプレートで作業を強制するにはどうすればよいでしょうか?

4

1 に答える 1