terraform 玩转 docker !

查看 20|回复 0
作者:winson030   
背景
最近在用 terraform 做基础设施部署,发现 terraform 除了支持很多云服务 provider 之外,也支持很多本地服务的 provider ,比如 virtual box ,docker ,proxmox 等等。
玩法

云服务费用高可以拿本地服务练手,推荐 docker !

docker 的 provider 我用的是 kreuzwerker/docker
只需要在本地安装 terraform ,在 main 文件中配置好远程 docker 的 ssh host
将 docker 或者 docker compose 的指令内容转换成 hcl
执行下面三步:
[ol]
  • terraform init
  • terraform plan
  • terraform apply
    [/ol]
    展示一份简单的 terraform 配置文件,
    与下面的命令等同:
    docker run my-nginx --image=nginx:latest -p 82:80
    # main.tf
    # 公钥访问
    terraform {
      required_providers {
        docker = {
          source = "kreuzwerker/docker"
        }
       
      }
      backend "consul" {
        address = "127.0.0.1:8500"
        scheme  = "http"
        path    = "terraform/state/nginx"
       
      }
    }
    provider "docker" {
      host     = "ssh://root@your_host:22"
      ssh_opts = ["-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null"]
    }
    resource "docker_container" "nginx" {
      image = "nginx:latest"
      name  = "my-nginx"
      ports {
        internal = 80
        external = 82
      }
    }
    最后访问 ip:82 就能 fan 访问到 nginx 了!
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部