当前位置: 首页 > article >正文

使用Terraform创建Docker镜像和容器

为了实现自动化操作,Terraform需要明确指定所使用的提供者。因此,在主要的main.tf文件中,需要提供提供者的名称、源和版本信息。对于Docker,可以在main.tf中使用以下代码块。

1 Terraform配置模块

使用块和资源创建Terraform脚本。

terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 2.21.0"
    }
  }
}

这是一个Terraform配置模块,指定了所需的Docker提供者及其版本。

在这个配置中,指定了Terraform代码需要使用Docker提供者与Docker容器进行交互。source参数指定了提供者代码的位置,在这种情况下为kreuzwerker/docker GitHub存储库。version参数指定了应使用的提供者的最低版本。

图片

2 提供者模块

提供者块配置了指定的提供者,此处为docker。提供者是Terraform用于创建和管理资源的插件。

provider "docker" {}

图片

3 资源

使用资源块定义基础架构的组件。资源可以是物理或虚拟组件,如Docker容器,也可以是逻辑资源,如Heroku应用程序。

资源块在块之前有两个字符串:资源类型和资源名称。在此示例中,第一个资源类型是docker_image,名称为Nginx。

为nginx docker镜像创建资源块

resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

为运行nginx的docker容器创建资源块

resource "docker_container" "nginx" {
  image = docker_image.nginx.latest
  name  = "tutorial"
  ports {
    internal = 80
    external = 80
  }
}

图片

在创建Terraform配置文件(使用.tf扩展名)之后,使用以下Terraform命令来配置和管理基础架构:

Terraform init: 通过下载和安装所需的提供者和模块、初始化后端并下载必要的插件,初始化新的或现有的Terraform工作目录。

terraform init

图片

Terraform plan: 生成执行计划,显示Terraform将采取哪些操作来达到配置文件中指定的期望状态。该命令还报告将对基础架构进行的任何更改。

terraform plan

图片

图片

Terraform apply: 执行terraform plan生成的执行计划中提出的操作。该命令会配置和提供在配置文件中定义的基础架构。

terraform apply

图片

图片

如果未安装Docker,请使用以下命令:

sudo apt-get install docker.io
sudo docker ps
sudo chown $USER /var/run/docker.sock

使用以下命令检查是否创建了Docker容器:

docker ps

图片

浏览公共IP地址,会看到nginx的默认页面。

图片


http://www.kler.cn/a/146641.html

相关文章:

  • ubuntu支持中文的字体
  • 【python】OpenCV—Local Translation Warps
  • 如何修复Android上未安装的应用程序
  • 懒饭 3.0.2 | 谷歌版纯净无广告教做菜软件
  • Cesium中的CustomDataSource 详解
  • abap安装cl_json类
  • Rocket架构
  • C语言--每日选择题--Day24
  • 什么是steam红锁,如何防止steam账号红锁
  • 97、Text2NeRF: Text-Driven 3D Scene Generation with Neural Radiance Fields
  • 3.数据结构
  • React 入门使用 (官方文档向 Part2)
  • 【unity实战】实现一个放置3d物品建造装修系统(附项目源码)
  • 复亚智能交通无人机:智慧交通解决方案大公开
  • 微信小程序内部跳到外部小程序
  • Java EE 进程线程
  • 如何往excel中写子表?
  • 【SA8295P 源码分析】134 - Android 侧 NFS Client 挂载 QNX NFS Server 目录不成功 问题排查方法
  • 鸿蒙开发-ArkTS 语言-循环渲染
  • Golang 设置运行的cpu数与channel管道
  • python生成邀请码,手机验证码
  • uniapp (vue3)生成二维码
  • 这回稳了,4G低功耗摄像头实现全景拍照解决方案来了
  • Linux shell编程学习笔记30:打造彩色的选项菜单
  • 【Proteus仿真】【STM32单片机】感应水龙头设计
  • 枚举 组合数 P3799 妖梦拼木棒