如何为Terraform中的Docker容器仅分配一个资源IP4地址?
如果我在Terraform中应用这个,它会说:“无法启动容器:来自守护进程的错误响应:地址已在使用中” 我检查了一下,听者得到了IP 10.0.1.1——但为什么? 我不想给侦听器分配固定地址,因为可能有不同数量的侦听器和说话者(示例中未包括)如何为Terraform中的Docker容器仅分配一个资源IP4地址?,docker,terraform,Docker,Terraform,如果我在Terraform中应用这个,它会说:“无法启动容器:来自守护进程的错误响应:地址已在使用中” 我检查了一下,听者得到了IP 10.0.1.1——但为什么? 我不想给侦听器分配固定地址,因为可能有不同数量的侦听器和说话者(示例中未包括) 编辑:我试着通过ipv4_address=“10.0.1.X”给每个人一个固定的IP地址,结果成功了。但是我只想手动设置引导程序IP。如果您不希望它重用该IP地址,为什么要指定它?未设置ipv4\u address参数的默认行为应该是网络通过DHCP为容
编辑:我试着通过ipv4_address=“10.0.1.X”给每个人一个固定的IP地址,结果成功了。但是我只想手动设置引导程序IP。如果您不希望它重用该IP地址,为什么要指定它?未设置
ipv4\u address
参数的默认行为应该是网络通过DHCP为容器分配IP地址。我不确定引导程序是否需要此地址。但我认为这里发生的是,DHCP首先将这个地址提供给侦听器!我怎样才能防止这种情况发生?有人知道吗?在有人找到更好的解决方案之前,我向侦听器添加了dependens\u on=[docker\u container.bootstrapper]。。。
# Setting up docker network
resource "docker_network" "private_network" {
name = "vaccine-net"
attachable = true
ipam_config {
subnet = "10.0.1.0/24"
gateway = "10.0.1.254"
}
}
# create container
resource "docker_container" "bootstrapper" {
name = "bootstrapper"
image = "vaccine/bootstrapper:latest"
networks_advanced {
name = docker_network.private_network.name
ipv4_address = "10.0.1.1"
}
}
# create Docker vaccine-listener
resource "docker_container" "vaccine-listener" {
name = "listener-${(count.index) + 1}"
image = "vaccine/listener:latest"
count = 1
networks_advanced {
name = docker_network.private_network.name
}
}