写点什么

使用 Terraform 创建 Docker 镜像和容器

  • 2023-11-27
    福建
  • 本文字数:962 字

    阅读完需:约 3 分钟

为了实现自动化操作,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.iosudo docker pssudo chown $USER /var/run/docker.sock
复制代码


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


docker ps
复制代码


图片


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


图片


发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
使用Terraform创建Docker镜像和容器_Terraform_互联网工科生_InfoQ写作社区