winson030
V2EX  ›  Docker

terraform 玩转 docker !

  •  
  •   winson030 · Jan 7, 2024 · 2234 views
    This topic created in 871 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   ·   3302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:48 · PVG 18:48 · LAX 03:48 · JFK 06:48
    ♥ Do have faith in what you're doing.