V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
winson030
V2EX  ›  Docker

terraform 玩转 docker !

  •  
  •   winson030 · 358 天前 · 1396 次点击
    这是一个创建于 358 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    最近在用 terraform 做基础设施部署,发现 terraform 除了支持很多云服务 provider 之外,也支持很多本地服务的 provider ,比如 virtual box ,docker ,proxmox 等等。

    玩法

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

    docker 的 provider 我用的是 kreuzwerker/docker

    只需要在本地安装 terraform ,在 main 文件中配置好远程 docker 的 ssh host

    将 docker 或者 docker compose 的指令内容转换成 hcl

    执行下面三步:

    1. terraform init
    2. terraform plan
    3. terraform apply

    展示一份简单的 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 了!

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:16 · PVG 01:16 · LAX 09:16 · JFK 12:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.