V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
winson030
V2EX  ›  Docker

terraform 玩转 docker !

  •  
  •   winson030 · Jan 7, 2024 · 2163 views
    This topic created in 850 days ago, the information mentioned may be changed or developed.

    背景

    最近在用 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 了!

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1170 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 23:08 · PVG 07:08 · LAX 16:08 · JFK 19:08
    ♥ Do have faith in what you're doing.