超高效,使用Terraform創建Docker鏡像和容器
為了實現自動化操作,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.io
sudo docker ps
sudo chown $USER /var/run/docker.sock
使用以下命令檢查是否創建了Docker容器:
docker ps
圖片
瀏覽公共IP地址,會看到nginx的默認頁面。
圖片