Terraform操作Docker类型基础架构

一、前提

1.启动docker

docker 的安装

https://blog.csdn.net/axibazZ/article/details/118311181

2.系统中已经安装了Terraform

Terraform的安装

 https://blog.csdn.net/axibazZ/article/details/118607496

二、构建Docker基础设施

1.编写的定义Terraform配置的文件

main.tf

terraform {
  required_providers {
    docker = {
      source = "kreuzwerker/docker"
      version = "~> 2.13.0"
    }
  }
}

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 = 8898
  }
}

文件中的字段分析:

1> terraform:包含Terraform设置

2>required_providers:包括Terraform将用于提供您的基础设施所需的程序。

3>source:属性定义了一个可选的主机名,命令空间和提供者类型。默认情况下,Terraform从Terraform Registry安装提供程序。例子中,docker提供程序的源定义为kreuzwerker/docker,其实是registry.terraform.io/kreuzwerker/docker 的简写方式。

4>version:是提供程序的版本,可选配置,默认Terraform下载最新版本。

5>provider:用来配置指定的提供程序,本例为docker,提供程序是 Terraform 用于创建和管理资源的插件。可以配置多个。里面可以用来配置一些信息,比如token,access_token,username,password等信息。

6>resource:定义基础架构的组件。可以是物理或者虚拟组件。格式为 resource “资源类型” “资源名称” { },本例中的docker_image 为资源类型,nginx为资源名称。类型的前缀映射到提供者的名称。本例中是docker_image使用的docker提供程序管理资源。资源类型和资源名称共同组成了资源的唯一ID,例如你的docker镜像id就是docker_image.nginx。resource主要用于配置资源的参数,可以是机器大小,VPC ID 等内容。比如我们的docker_container设置镜像源。

2.初始化。到main.tf文件目录下执行初始化命令

terraform init

成功之后,会在当前路径下创建一个隐藏目录和一个锁定文件

.terraform:Terraform下载的docker提供程序会安装在当前工作目录的这个隐藏目录下。

.terraform:该文件指定使用的确切提供程序版本,以便您可以控制何时更新用于项目的提供程序

 3.格式化验证、配置验证

#格式化验证
terraform fmt
#配置验证
terraform validate

 4.创建基础设施

terraform apply

打印执行计划,并询问是否接受,yes表示接受并继续。

+ 后面的表示将要设置的属性,或者需要创建的资源

 创建成功。

5.验证我们安装的nginx容器,使用docker命令查看我们创建的ngxin容器是否正常启动。

docker ps

 6.ngxin是否正常运行

 7.检查状态

terraform show

三、修改基础设施

1.修改main.tf,这里我们改变外部暴露的端口为9988

terraform {
  required_providers {
    docker = {
      source = "kreuzwerker/docker"
      version = "~> 2.13.0"
    }
  }
}

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 = 9988
  }
}

2.重新构建

terraform apply

会打印我们改变的地方,并提示是否接受这个执行计划,yes接受。

打印操作成功 

 3.查看容器状态,可以看到端口号已经改了。

 四、销毁创建的基础设施

terraform destroy

打印提示,与apply时相反,现在是 ‘ - ’,输入yes继续执行,其他则退出。

 执行的步骤为删除容器,然后再删除镜像。

 五、查看容器,nginx容器已经没有了。

docker ps

 好了,入门操作就介绍完了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值