通过Terraform在本地运行docker nginx
前置条件: 1. 装置好windows docker 2. 装置好terraform
装置docker
装置windows docker能够间接登录http://docker.com下载安装即可,docker能够有图形化治理页面装置最新的19.03。为了简化第一次的操作,这里咱们先不通过terraform来装置docker,docker下载安装地址https://www.docker.com/get-started
编写main.tf
terraform {
required_providers {
docker = {
source = "terraform-providers/docker"
}
}
}
provider "docker" {
host = "tcp://localhost:2375"
}
resource "docker_image" "nginx" {
name = "nginx:latest"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.latest
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
其中值得注意的是,官网的例子,在provider “docker”中指定的host是通过windows的管道实现的,怕是曾经很多人不会用了。这里须要在docker desktop中设置开启”tcp://localhost:2375″,并替换tf文件中的host =”tcp://localhost:2375″。
执行main.tf
笔者应用的vs code,能够间接右键在终端中关上,而后顺次进行以下步骤。
1. 初始化
在终端中执行terraform init
。首次执行初始化操作,会有较长的工夫去获取terraform中定义的source信息,在第一次初始化后没有source信息的变动,能够跳过初始化间接开始部署。
2. 部署
在终端中执行terraform plan
查看terraform执行打算,在终端中执行terraform apply
实现部署。执行部署命令时,会将terraform的plan列出来展现给用户,并由用户确定执行。也能够输出-auto-approve
跳过plan。
输出”yes”
装置实现!
查看后果。
大家能够简略的字面了解main.tf中的语义,会在前面的内容中具体介绍,在此次执行中咱们会在本地创立一个nginx的容器,并裸露800端口,咱们拜访localhost:800能够看到由terraform创立的容器能够失常运行。
3. 删除
在终端中执行terraform destroy
。则删除由tf创立的docker容器。
附录
在咱们执行terraform -h
后看到terraform的相干操作命令和应用办法,整顿给大家,如果你刚刚开始应用terraform,能够从这些根底命令开始,对于其余命令,请应用前浏览terraform的官网文档。
Usage: terraform [-version] [-help] [args]
Common commands:
apply 构建或更改基础设施
console terraform传参的交互式控制台
destroy 删除由terraform管制的基础设施
env 工作空间治理
fmt 将配置文件重写为标准格局
get 下载并装置配置模块
graph 创立terraform资源的可视化图形
import 将现有基础设施导入terraform
init 初始化terraform的工作目录
login 获取并保留近程主机的凭据
logout 删除近程主机的本地存储凭据
output 从状态文件读取输入
plan 生成并显示执行打算
providers 打印配置中应用的提供程序的树型构造
refresh 依据理论资源更新本地状态文件
show 查看terraform的状态或打算
taint 手动标记污点以便资源从新创立
untaint 手动勾销污点
validate 验证terraform文件
version terraform版本
workspace 工作空间治理
All other commands:
0.12upgrade 重写v0.12之前的模块源代码
0.13upgrade 重写v0.13之前的模块源代码
debug debug输入治理
force-unlock 手动解除terraform锁定状态
push 推送实现代码到企业仓库
state 要害状态治理
本文作者:UCloud 容器云产品经理 沈旭
发表回复