You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform将Docker网络设置为外部网络?

解决Terraform中容器加入外部Docker网络的问题

你之前用docker_network资源创建网络并添加external标签的做法是错的——这个资源是用来创建新网络的,而外部网络是已经存在的,不需要Terraform去创建,而是要通过data数据源来引用它。

正确的做法分两步:

1. 引用已存在的外部网络

用data "docker_network"块查询你已经配置好的外部网络,比如你的网络名叫proxy:

data "docker_network" "proxy" {
  name = "proxy" # 替换成你实际的外部网络名称
}

2. 让容器关联这个外部网络

在每个docker_container资源里,通过networks_advanced参数指定这个已引用的网络:

# 第一个容器示例
resource "docker_container" "app1" {
  name  = "app1"
  image = "your-image-1:latest" # 替换成你的镜像

  networks_advanced {
    name = data.docker_network.proxy.name
  }
}

# 第二个容器示例
resource "docker_container" "app2" {
  name  = "app2"
  image = "your-image-2:latest" # 替换成你的镜像

  networks_advanced {
    name = data.docker_network.proxy.name
  }
}

这个逻辑和你之前在docker-compose.yml里写external: true是一致的:都是告诉编排工具不要创建新网络,直接使用已存在的外部网络。

内容的提问来源于stack exchange,提问作者secretcity-dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:12:45