问题标签 [terraform-provider-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1278 浏览

terraform - 如何让 Terraform 中的 Docker 提供程序在尝试连接之前等待地址可用?

我在 Terraform 中有以下资源:

这依赖于在ipv4_address连接到 docker 机器之前要知道的值。在供应另一个资源之前,该值是未知的:

当我运行时terraform plan,我收到以下错误:

错误:初始化 Docker 客户端时出错:无法解析 docker 主机 ``

在 docker.tf 第 1 行,在提供者“docker”中:1:提供者“docker”{

这似乎ipv4_address是空的,因为 docker 插件在配置之前尝试连接到 docker 机器。我如何告诉它在尝试连接之前等待机器配置好?


我试过的一件事:

当我这样做时,我收到此错误:

错误:提供程序块中的保留参数名称

在 docker.tf 第 4 行,在提供者“docker”中:4:depends_on = [

提供者参数名称“depends_on”保留供 Terraform 在未来版本中使用。

但是阅读更多内容depends_on,我认为这不是解决方案。

0 投票
0 回答
159 浏览

docker - Terraform Docker Provider:将端口“绑定”到特定网络

启动支持三个网络的 Docker 容器:默认桥(OAM)、桥(数据输入)和 MacVLAN(数据输出)。问题是 Docker 提供程序似乎在默认桥上设置了所有定义的端口。如何告诉 Terraform 将定义的端口绑定到特定的 Docker 网络?

.tf 文件片段:

Docker 网络:

端口 222 有效,端口 881 无效。

来自运行 Docker 的主机操作系统的 IPTables:

tcp dpt:881行需要有一个目的地192.168.32.3。syslog 容器仅使用 Data-In Docker 网络,因此具有正确的 IP 地址。

任何建议/解决方法?谢谢!:)

0 投票
0 回答
205 浏览

docker - Terraform Docker Provider:有什么方法可以在 Docker 主机上执行命令?

鉴于 Terraform Docker 提供程序的限制(请参阅Terraform Docker 提供程序:“绑定”端口到特定网络),有没有办法在容器启动后在 Docker 主机上执行命令?

由于您无法指定将特定端口{} 块附加到哪个 Docker 网络,也许我可以只定义一个网络来启动我的 CNF,以便 Terraform 将端口绑定到该网络,然后将其他网络添加到容器中,然后启动还是重启呢?我的 Docker 主机是远程的,否则我只会使用 shell 脚本来正确启动,而不会受到 Terraform 的限制。

0 投票
1 回答
127 浏览

terraform - Terraform:为输出指定特定的 Docker 网络名称

我有一个连接到三个 Docker 网络的容器化网络功能 (CNF):

我正在尝试获取“外网”IP 地址以用作另一个容器的输入。我这样指定:

当它是第三个元素时,它可以正常工作....但问题是 Terraform(或 Docker,两者之一)并不总是将“外部网络”作为第三个网络:(

有没有办法指定 [network_name="outside-net"] 而不是索引号?

0 投票
1 回答
512 浏览

docker - 如何使用 terraform destroy 强制删除 Docker 映像

我正在关注terraform.io 上的教程,该教程让我使用 terraform 配置 docker 映像和容器,然后销毁 terraform 堆栈。但是,我收到以下错误:

我知道本机 Docker 解决方案正在运行docker rmi -f 540a289bab6c。但是,我想知道是否有一种 terraform 方法来解决这个问题?

terraform 资源的文档docker_image显示了 terraform 试图破坏图像的原因terraform destroy:模板main.tfkeep-locally设置为true. 但它没有说明如何强制进行这种破坏。

教程的main.tf内容如下:

那么,如何terraform destroy在不借助 docker 原生工具的手动干预的情况下强制使用此模板呢?

0 投票
2 回答
373 浏览

docker - Terraform docker 无法使用远程主机的容器注册表进行身份验证

我在使用 Terraform 0.13.4 的 Windows 机器上,并尝试使用 Terraform 和 Docker 提供程序在远程主机上启动一些容器:

我很难做到这一点,因为它无法通过我的私人注册表进行身份验证。总是越来越401 Unauthorized

如果我不这样做来获取sha256_digest并仅使用docker_container资源,那么一切正常,但它会强制替换正在运行的容器。

0 投票
1 回答
1572 浏览

docker - 如何在 terraform 0.14 中选择正确的 docker 提供程序

为了与 Docker 集成,我将 terraform 设置如下:

所需的提供者

该提供者的实例化

最后我在资源中按如下方式使用它:

当我运行时terraform init,它似乎仍然指的是 HashiCorp 的“旧” terraform 提供程序:

当我运行时,terraform providers我确实看到了参考,原因是docker_registry_image

笔记:

  • 所有其他提供商都在其最新版本上。
  • 我正在使用 terraform 0.14.6。
  • 上面给出的资源是我正在使用的唯一 docker 资源。
  • 我已经尝试在提供者和资源上使用别名,但它不起作用。

我该如何解决这个问题?谢谢!

0 投票
1 回答
110 浏览

docker - Terraform 在每一步都要求 Docker 主机的密码

我实际上正在学习 Terraform,我一直在尝试使用它在远程服务器上创建 docker 容器。它正在工作,但问题是它在每一步都不断要求输入密码。我只想在开始时输入一次密码,然后部署我的所有资源。这是我的地形代码。

这是部署的交互式输出,您可以看到对于每个 SSH 命令,我一直在输入密码。

我使用 ssh-keygen 命令生成了 SSH 密钥,并将密钥复制到本地计算机上的 SSH 配置文件中:

这是SSH配置文件

我怎样才能通过只提供一次 SSH 密码来执行此代码?