Formation DevOps | Formation Terraform : 25- Terraform provider docker: Docker network
Terraform :Docker provider
On va toujours continuer à utiliser les modules créer pour Docker en plus on va utiliser aussi les providers Docker
Docker-network:
L’utilité de ce provider est de la gestion la partie réseau des conteneurs , CRUD des réseaux.
Docs détaillées : Liens docker-network
Tree au niveau du projet :
main.tf
variable “ssh_host” {}
variable “ssh_user” {}
variable “ssh_key” {}
module “docker_install” {
source = “./modules/docker_install”
ssh_host = var.ssh_host
ssh_user = var.ssh_user
ssh_key = var.ssh_key}module
“docker_run” {
source = “./modules/docker_run”
ssh_host= var.ssh_host
}
output “ip_container” {
value = module.docker_run.ip_docker
}
:Affichage de l’adresse ip du conteneur.
terraform.tfvars:
ssh_host = “192.168.21.103“
ssh_user = “ubuntu“
ssh_key = “/home/ubuntu/.ssh/id_rsa”
- Modules/docker_run
Modules/docker_run/main.tf
provider “docker” {
host = “tcp://${var.ssh_host}:2375”
}
resource “docker_network” " dockernet” {
name = “mynet2”
}
resource “docker_image” “nginx” {
name = “nginx:latest”
}
resource “docker_container” “nginx” {
image = docker_image.nginx.latest
name = “enginecks”
ports {
internal = 80
external = 80
}
networks_advanced {
name = docker_network.dockernet.name
}
}
Création d’un nouveau réseau docker , pour l’afficher docker network ls , ensuite l’utiliser pour notre
conteneur nginx
output “ip_docker” {
value = docker_container.nginx.ip_address
}
Output.tf /!\il faut escalader /!\
- modules\docker_run
Avant le lancement
Après le lancement
Après le lancement
Modules/docker_run/main.tf
terraform {
required_providers {
docker = {
source = “kreuzwerker/docker”
version = “2.15.0”
}
}
}
provider “docker” {
host = “tcp://${var.ssh_host}:2375”
}
resource “docker_network” " dockernet" {
name = “mynet2”
driver = “bridge”
ipam_config {
subnet = “177.22.0.0/24”
}
}
resource “docker_image” “nginx” {
name = “nginx:latest”
}
resource “docker_container” “nginx” {
image = docker_image.nginx.latest
name = “enginecks”
ports {
internal = 80
external = 80
}
networks_advanced {
name = docker_network. dockernet.name
}
}
Plus avancé on choisi le type et aussi les ranges d’ips
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io