Day 62 - Terraform and Docker 🔥

2 min read

Cover Image for Day 62 - Terraform and Docker 🔥

(install terraform: https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)

Blocks and Resources in Terraform

Task-01

  • Create a Terraform script with Blocks and Resources
terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 2.21.0"
        }
    }
}

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.

provider "docker" {}

Resource

Resource blocks are used 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

Hint:

resource "docker_image" "nginx" {
 name         = "nginx:latest"
 keep_locally = false
}
  • Create a resource Block for running a docker container for Nginx
resource "docker_container" "nginx" {
 image = docker_image.nginx.latest
 name  = "tutorial"
 ports {
   internal = 80
   external = 80
 }
}

Note: In case Docker is not installed

sudo apt-get install 

docker.io 

sudo docker ps 

sudo chown $USER /var/run/docker.sock

Happy learning!!