問題タブ [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.
terraform - Terraform の Docker プロバイダーが、アドレスが使用可能になるのを待ってから接続を試行するようにするにはどうすればよいですか?
Terraform に次のリソースがあります。
ipv4_address
これは、docker マシンに接続できるようになる前に、値がわかっていることに依存しています。この値は、別のリソースがプロビジョニングされるまで不明です。
を実行するterraform plan
と、次のエラーが表示されます。
エラー: Docker クライアントの初期化中にエラーが発生しました: Docker ホスト `` を解析できません
docker.tf の 1 行目、プロバイダー "docker": 1: プロバイダー "docker" {
ipv4_address
Docker プラグインがプロビジョニングされる前に Docker マシンに接続しようとしているため、 は空に見えます。接続を試行する前に、マシンがプロビジョニングされるのを待つように指示するにはどうすればよいですか?
私が試したことの1つ:
これを行うと、次のエラーが表示されます。
エラー:プロバイダー ブロックの予約済み引数名
docker.tf の 4 行目、プロバイダ "docker": 4: depends_on = [
プロバイダー引数名「depends_on」は、Terraform が将来のバージョンで使用するために予約されています。
しかし、もっと読んでdepends_on
みると、とにかくそれが解決策だとは思いません。
docker - Terraform Docker プロバイダー: 特定のネットワークへの「バインド」ポート
デフォルト ブリッジ (OAM)、ブリッジ (データ入力)、および MacVLAN (データ出力) の 3 つのネットワークをサポートする Docker コンテナーを起動します。問題は、Docker プロバイダーがデフォルト ブリッジで定義済みのすべてのポートをセットアップしているように見えることです。定義されたポートを特定の Docker ネットワークにバインドするように Terraform に指示するにはどうすればよいですか??
.tf ファイルの抜粋:
Docker ネットワーク:
ポート 222 は機能しますが、ポート 881 は機能しません。
Docker を実行しているホスト OS からの IPTables:
行にはのtcp dpt:881
宛先が必要です192.168.32.3
。syslog コンテナーは Data-In Docker Network のみを使用するため、正しい IP アドレスを持っています。
提案/回避策はありますか?? ありがとう!:)
docker - Terraform Docker プロバイダー:Docker ホストでコマンドを実行する方法はありますか?
Terraform Docker プロバイダーの制限 ( Terraform Docker プロバイダー: 特定のネットワークへの「バインド」ポートを参照) を考えると、コンテナーが開始された後に Docker ホストでコマンドを実行する方法はありますか?
特定のポートのブロックを接続する Docker ネットワークを指定できないため、ネットワークを 1 つだけ定義して CNF を開始し、Terraform がポートをそのネットワークにバインドし、その後他のネットワークをコンテナに追加して、開始または再起動しますか?私の Docker ホストはリモートです。それ以外の場合は、シェル スクリプトを使用して、Terraform の制限なしで正しく開始していたはずです。
docker - terraform destroy で Docker イメージを強制的に削除する方法
私はterraform.io のチュートリアルに従っていました。このチュートリアルでは、terraform を使用して docker イメージとコンテナーをプロビジョニングし、terraform スタックを破棄しました。ただし、次のエラーが表示されます。
これに対するネイティブの Docker ソリューションが実行されていることはわかっていdocker rmi -f 540a289bab6c
ます。しかし、これにテラフォームのアプローチがあるかどうか疑問に思っていましたか?
terraform リソースのドキュメントは、terraformdocker_image
がイメージを破棄しようとした理由を示していますterraform destroy
: テンプレートmain.tf
が にkeep-locally
設定されていましたtrue
。しかし、その破壊を強制する方法については述べていません。
チュートリアルのmain.tf
内容は次のとおりです。
terraform destroy
では、Docker ネイティブ ツールを使用して手動で介入することなく、このテンプレートで作業を強制するにはどうすればよいでしょうか?
docker - Terraform docker がリモート ホストのコンテナー レジストリで認証できない
Terraform 0.13.4 を使用している Windows マシンで、Terraform と Docker プロバイダーを使用してリモート ホストでいくつかのコンテナーを起動しようとしています。
プライベートレジストリで認証できないため、これに苦労しています。常に取得して401 Unauthorized
います。
sha256_digest
リソースを取得して使用するためにこれを行わない場合docker_container
、すべてが機能しますが、実行中のコンテナーが強制的に置き換えられます。