Day 62 - Terraform and Docker ๐Ÿ”ฅ

Day 62 - Terraform and Docker ๐Ÿ”ฅ

ยท

2 min read

Terraform needs to be told which provider to be used in the automation, hence we need to give the provider name with source and version. For Docker, we can use this block of code in your main.tf

Blocks and Resources in Terraform

Terraform block

Task-01

  • Create a Terraform script with Blocks and Resources
terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 2.21.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.

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

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

main.tf

terraform init

terraform plan/terraform plan: Terraform will examine your configuration files and create a detailed execution plan that shows what changes will be made to your infrastructure. The plan includes a list of all resources that will be created, modified, or deleted, as well as any changes to resource dependencies or attributes.

Terraform validate-to check any errors

Terraform apply/terraform apply: is a command used in Terraform to apply the changes defined in your configuration files to your infrastructure.

Output:

Happy Learning :)

Thank you for reading!! Hope you find this helpful.

#day62#90daysofdevops#devopscommunity#

Shubham Londhe

ย