Press "Enter" to skip to content

terraform 操作容器

内容目录

背景

之前讲过了 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 个模块,

  1. 一个是 provider
    1. 用于定义提供商比如这里的是 docker的 sdk 版本,后续 terraform init下载将会据此下载 sdk 版本用于后续docker资源创建使用
  2. 另一是资源定义
    1. 用于实际资源创建,这里 2 个资源一个是定义了 docker image 用于镜像拉取
    2. 一个是 docker container 用于容器创建

有了这两个模块就可以使用 terraform 来创建容器了

terraform操作

  1. terraform init

    1. 下载资源所需 sdk, 默认下载在项目目录下.terraform 位置
  2. terraform plan

    1. 用于查看部署计划,校验部署配置等
  3. terraform apply

    1. 部署资源
发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注