Day 62 - Terraform and Docker 🔥

Pooja BhavaniPooja Bhavani
2 min read

Blocks and Resources in Terraform

Task-01

  • Create a Terraform script with Blocks and Resources using terraform.tf file.Before that we need to install docker in our system.
sudo apt-get install docker.io -y && sudo apt-get install docker-compose -y && sudo chown $USER /var/run/docker.sock
  • Create a file terraform.tf and write the providers of dockers
terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 3.0.0"
}
}
}

Note: kreuzwerker/docker, is shorthand for registry.terraform.io/kreuzwerker/docker.

Provider Block

  • The provider block configures the specified provider, in this case, docker. A provider is a plugin that Terraform uses to create and manage your resources. for that we need a file like providers.tf or main.tf in this case we use main.tf
provider "docker" {}

Resource

  • Use resource blocks to define components of your infrastructure. A resource might be a physical or virtual component such as a Docker container, or it can be a logical resource such as a Heroku application.

  • Resource blocks have two strings before the block: the resource type and the resource name. In this example, the first resource type is docker_image and the name is Nginx.

Task-02

  • Create a resource Block for an nginx docker image in main.tf
resource "docker_image" "nginx-image" {
    name = "nginx:latest"
    keep_locally = false
}
  • Create a resource Block for running a docker container for nginx in main.tf
resource "docker_container" "nginx-ctr" {
    name = "nginx_container"
    image = docker_image.nginx-image.name
    ports {
        internal = 80
        external = 80
    }
}

  • After completing all the steps mentioned in Day 61's blog, we can use a command to run our Docker container with our IP address using the Nginx port number.
terraform init

terraform plan

terraform apply

docker ps

  • Now, copy your IP address from your AWS console and paste it into a new tab with port number 80.

0
Subscribe to my newsletter

Read articles from Pooja Bhavani directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Pooja Bhavani
Pooja Bhavani