Terraform
销毁基础设施
你现在已经在你的机器上创建并更新了一个 Docker 容器,使用了 Terraform。在本教程中,你将使用 Terraform 来销毁此基础设施。
一旦你不再需要基础设施,你可能需要销毁它以减少你的安全风险、成本或资源开销。例如,你可能要将生产环境从服务中移除,或者管理短生命周期的环境,例如构建或测试系统。除了构建和修改基础设施之外,Terraform 还可以销毁或重新创建它所管理的基础设施。
销毁
terraform destroy 命令终止由你的 Terraform 项目管理资源。该命令是 terraform apply 的反向操作,它终止 Terraform 状态中指定的所有资源。它不会销毁在其他地方运行且不由当前 Terraform 项目管理的资源。
销毁你创建的资源。
$ terraform destroy
docker_image.nginx: Refreshing state... [id=sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdeenginx:latest]
docker_container.nginx: Refreshing state... [id=b2140f8c6aa79f62c8ac3c3d792f2044bcca8d5a0a08a4598ead1ade7aab7e6e]
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# docker_container.nginx will be destroyed
- resource "docker_container" "nginx" {
##...
# docker_image.nginx will be destroyed
- resource "docker_image" "nginx" {
- id = "sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdeenginx:latest" -> null
- keep_locally = false -> null
- latest = "sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee" -> null
- name = "nginx:latest" -> null
}
Plan: 0 to add, 0 to change, 2 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value:
- 前缀表示容器将被销毁。与 apply 一样,Terraform 会显示其执行计划并等待批准后再进行任何更改。
回答 yes 以执行此计划并销毁基础设施。
Enter a value: yes
docker_container.nginx: Destroying... [id=b2140f8c6aa79f62c8ac3c3d792f2044bcca8d5a0a08a4598ead1ade7aab7e6e]
docker_container.nginx: Destruction complete after 2s
docker_image.nginx: Destroying... [id=sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdeenginx:latest]
docker_image.nginx: Destruction complete after 0s
Destroy complete! Resources: 2 destroyed.
与 apply 一样,Terraform 会确定销毁资源的顺序。在这种情况下,Terraform 识别到一个没有其他依赖项的单个容器,因此它销毁了该容器。在涉及多个资源的更复杂的情况下,Terraform 将以适当的顺序销毁它们,以尊重依赖关系。