内容目录
背景
之前讲过了 terraform 安装流程,作为学习 terraform 的最佳手段,我们可以从对容器的操作来熟悉 terraform 的操作流程。
安装 docker
国内使用 docker 受限于dockerhub 的访问限制,需要配置镜像加速
bash <(curl -f -s --connect-timeout 10 --retry 3 https://linuxmirrors.cn/docker.sh) --source mirrors.tencent.com/docker-ce --source-registry docker.1ms.run --protocol https --install-latested true --close-firewall false --ignore-backup-tips
terraform 配置
前置准备结束,需要准备 terraform 配置用于资源定义,sdk 下载等等,下面是一个最简单的示例
main.tf
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 3.0.1"
}
}
}
provider "docker" {}
resource "docker_image" "nginx" {
name = "nginx"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.image_id
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
里面包含必不可少的 2 个模块,
- 一个是 provider
- 用于定义提供商比如这里的是 docker的 sdk 版本,后续 terraform init下载将会据此下载 sdk 版本用于后续docker资源创建使用
- 另一是资源定义
- 用于实际资源创建,这里 2 个资源一个是定义了 docker image 用于镜像拉取
- 一个是 docker container 用于容器创建
有了这两个模块就可以使用 terraform 来创建容器了
terraform操作
-
terraform init
- 下载资源所需 sdk, 默认下载在项目目录下.terraform 位置
-
terraform plan
- 用于查看部署计划,校验部署配置等
-
terraform apply
- 部署资源