0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TerraformとDockerでNginxを構築してみた

Posted at

TerraformとDockerでNginxを構築してみた

TerraformとDockerでNginx構築に挑戦

TerraformとDockerを使ってNginxを構築しました。作業時間は約15分と手軽です。
今回は、その流れを簡潔にまとめます。この内容は「入門Terraform クラウド時代のインフラ統合管理(impress top gear)」という書籍を参考にしています。ただし、本書に記載されているコマンドがLinux環境向けであったため、Windows環境向けに一部変更しました。

※この記事では、TerraformおよびDockerの準備手順については省略しています。

構築手順

NginxコンテナをTerraformでデプロイ
まず、main.tfを作成してTerraformの設定を書きます。

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

provider "docker" {
  host = "tcp://localhost:2375" # Windows環境でのDocker接続設定
}

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

resource "docker_container" "nginx" {
  image = docker_image.nginx.image_id
  name  = "beginner"

  ports {
    internal = 80
    external = 8000
  }
}

Windows環境での設定変更

「入門Terraform」ではLinux環境のコマンドが使用されていましたが、Windows環境で実行する際には以下の点を変更しました。

接続方法

provider "docker"セクションのhost設定をWindows用に調整します。
 Windows環境
host = "tcp://localhost:2375"

 または、Named Pipeを使用する場合:
host = "npipe:////./pipe/docker_engine"

Docker Desktopの設定

Windows環境でhost = "tcp://localhost:2375"を使用するには、Docker Desktopで以下の設定を有効にする必要があります。

Docker Desktop

Settings → General → Expose daemon on tcp://localhost:2375 without TLS を有効化
これにより、TerraformがDockerデーモンに接続できるようになります。

作成の流れ

そのあとはCLIにて以下のコマンドを順番に実行します
$ terraform init
$ terraform plan
$ terraform apply

作成後、tutorialコンテナが動作しており、ポート8000で待ち受けています。docker psで動作中のコンテナを確認可能です。

スクリーンショット 2025-01-08 144037.png

学び

Terraformのシンプルさを実感しました。

次の挑戦

上記の本を参考にしながら、Windows環境向けにカスタマイズしてNginxコンテナを構築しました。
本書ではより詳しくコードごとの解説もあります。
記事では簡潔に説明しましたが、さらに複雑な構成にも挑戦していきたいと思います。
次回は、AWSにてEC2を作成する簡単なコードを紹介予定です。

この記事を読んでいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?