Terraform 0.11

docker_container




terraform

docker_container

डॉकटर कंटेनर के जीवनचक्र का प्रबंधन करता है।

उदाहरण उपयोग

# Start a container
resource "docker_container" "ubuntu" {
  name  = "foo"
  image = "${docker_image.ubuntu.latest}"
}

# Find the latest Ubuntu precise image.
resource "docker_image" "ubuntu" {
  name = "ubuntu:precise"
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक, स्ट्रिंग) डॉकटर कंटेनर का नाम।
  • image - (आवश्यक, स्ट्रिंग) इस कंटेनर को वापस करने के लिए छवि की आईडी। इस मान को प्राप्त करने का सबसे आसान तरीका docker_image संसाधन का उपयोग करना है जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है।

  • command - (वैकल्पिक, स्ट्रिंग्स की सूची) कंटेनर को शुरू करने के लिए उपयोग करने के लिए कमांड। उदाहरण के लिए, चलाने के लिए /usr/bin/myprogram -f baz.conf कमांड को सेट करें ["/usr/bin/myprogram", "-f", "baz.conf"]

  • entrypoint - (वैकल्पिक, स्ट्रिंग्स की सूची) कंटेनर के लिए एंट्रीपॉइंट के रूप में उपयोग करने के लिए कमांड। एंट्रीपॉइंट आपको एक निष्पादन योग्य के रूप में चलाने के लिए कंटेनर को कॉन्फ़िगर करने की अनुमति देता है। उदाहरण के लिए, कंटेनर शुरू करते समय /usr/bin/myprogram चलाने के लिए, एंट्रीपॉइंट को ["/usr/bin/myprogram"]

  • user - (वैकल्पिक, स्ट्रिंग) पहली प्रक्रिया को चलाने के लिए उपयोग किया जाने वाला उपयोगकर्ता। प्रारूप user या user:group जिसे उपयोगकर्ता और समूह को साहित्यिक या नाम से पारित किया जा सकता है।

  • dns - (वैकल्पिक, स्ट्रिंग्स का सेट) डीएनएस सर्वर का सेट।

  • dns_opts - (वैकल्पिक, स्ट्रिंग्स का सेट) DNS प्रदाता द्वारा उपयोग किए जाने वाले DNS विकल्पों का सेट, विकल्पों की मान्य सूची के लिए resolv.conf प्रलेखन देखें।

  • dns_search - (वैकल्पिक, स्ट्रिंग्स का सेट) DNS खोज डोमेन का सेट जो तब उपयोग किया जाता है जब नंगे अयोग्य होस्टनाम का उपयोग कंटेनर के अंदर किया जाता है।

  • env - (वैकल्पिक, स्ट्रिंग्स का सेट) पर्यावरण चर सेट करने के लिए।

  • labels - (वैकल्पिक, तार का नक्शा) कुंजी / मूल्य जोड़े कंटेनर पर लेबल के रूप में सेट करने के लिए।

  • links - (वैकल्पिक, स्ट्रिंग्स का सेट) उसी होस्ट पर चलने वाले कंटेनरों के बीच लिंक आधारित कनेक्टिविटी के लिए लिंक का सेट।

  • hostname - (वैकल्पिक, स्ट्रिंग) कंटेनर का होस्टनाम।
  • domainname - (वैकल्पिक, स्ट्रिंग) कंटेनर का डोमेन नाम।
  • restart - (वैकल्पिक, स्ट्रिंग) कंटेनर के लिए पुनरारंभ नीति। "नहीं", "ऑन-विफलता", "हमेशा", "बिना रुके" में से एक होना चाहिए।
  • max_retry_count - (वैकल्पिक, int) पुनरारंभ करने का प्रयास करने के लिए पुनरारंभ करने का प्रयास करने के लिए समय की अधिकतम राशि "असफलता" पर सेट होती है
  • must_run - (वैकल्पिक, बूल) यदि सही है, तो डॉकर कंटेनर चालू रखा जाएगा। यदि गलत है, तो जब तक कंटेनर मौजूद है, टेराफॉर्म यह मान लेता है कि यह सफल है।
  • capabilities - (वैकल्पिक, ब्लॉक) विवरण के लिए नीचे दी गई capabilities देखें।
  • ports - (वैकल्पिक, ब्लॉक) विवरण के लिए नीचे ports देखें।
  • host - (वैकल्पिक, ब्लॉक) विवरण के लिए नीचे दिए गए अतिरिक्त होस्ट देखें।
  • privileged - (वैकल्पिक, बूल) विशेषाधिकार प्राप्त मोड में कंटेनर चलाएँ।
  • devices - (वैकल्पिक, बूल) विवरण के लिए नीचे दिए गए devices देखें।
  • publish_all_ports - (वैकल्पिक, बूल) कंटेनर के सभी पोर्ट प्रकाशित करें।
  • volumes - (वैकल्पिक, ब्लॉक) विवरण के लिए नीचे दिए गए volumes देखें।
  • memory - (वैकल्पिक, int) एमबी में कंटेनर के लिए मेमोरी सीमा।
  • memory_swap - (वैकल्पिक, int) एमबीएस में कंटेनर के लिए कुल मेमोरी लिमिट (मेमोरी + स्वैप)। terraform apply होने के बाद यह सेटिंग -1 गणना हो सकती है, यदि टारगेट होस्ट मेमोरी स्वैप का समर्थन नहीं करता है, तो ऐसा होता है कि केस डॉकटर एक सॉफ्ट लिमिट का उपयोग करेगा।
  • cpu_shares - (वैकल्पिक, int) सीपीयू शेयरों (रिश्तेदार वजन) कंटेनर के लिए।
  • log_driver - (वैकल्पिक, स्ट्रिंग) कंटेनर के लिए उपयोग करने के लिए लॉगिंग ड्राइवर। "Json-file" के लिए डिफ़ॉल्ट।
  • log_opts - (वैकल्पिक, स्ट्रिंग्स का नक्शा) कुंजी / मान जोड़े लॉगिंग ड्राइवर के विकल्प के रूप में उपयोग करने के लिए।
  • network_alias - (वैकल्पिक, स्ट्रिंग्स का सेट) केवल उपयोगकर्ता द्वारा परिभाषित नेटवर्क के लिए कंटेनर के नेटवर्क उपनाम।
  • network_mode - (वैकल्पिक, स्ट्रिंग) कंटेनर का नेटवर्क मोड।
  • networks - (वैकल्पिक, स्ट्रिंग्स का सेट) नेटवर्क का आईडी जिसमें कंटेनर है।
  • destroy_grace_seconds - (वैकल्पिक, इंट) यदि परिभाषित किया गया है तो नष्ट करने से पहले कंटेनर को रोकने का प्रयास किया जाएगा। n सेकंड या सफल स्टॉप पर कंटेनर को नष्ट कर दिया जाएगा।
  • upload - (वैकल्पिक, ब्लॉक) विवरण के लिए नीचे upload देखें।
  • ulimit - (वैकल्पिक, ब्लॉक) विवरण के लिए नीचे दिए गए Ulimits देखें।

क्षमताओं

capabilities विन्यास के भीतर एक ब्लॉक है जो आपको लिनक्स क्षमताओं को जोड़ने या छोड़ने की अनुमति देता है। आप किन क्षमताओं को जोड़ सकते हैं और छोड़ सकते हैं, इसके बारे में अधिक जानकारी के लिए कृपया डॉक रन प्रलेखन देखें।

  • add - (वैकल्पिक, तार का सेट) जोड़ने के लिए लिनक्स क्षमताओं की सूची।
  • drop - (वैकल्पिक, स्ट्रिंग्स का सेट) ड्रॉप करने के लिए लिनक्स क्षमताओं की सूची।

उदाहरण:

resource "docker_container" "ubuntu" {
  name = "foo"
  image = "${docker_image.ubuntu.latest}"
  capabilities {
    add = ["ALL"]
    drop = ["SYS_ADMIN"]
  }
}

बंदरगाहों

ports कॉन्फ़िगरेशन के भीतर एक ब्लॉक है जिसे कंटेनर के पोर्ट मैपिंग को निर्दिष्ट करने के लिए दोहराया जा सकता है। प्रत्येक ports ब्लॉक निम्न का समर्थन करता है:

  • internal - (आवश्यक, इंट) कंटेनर के भीतर पोर्ट।
  • external - (आवश्यक, int) पोर्ट कंटेनर से बाहर निकल गया।
  • ip - (वैकल्पिक, स्ट्रिंग) आईपी पता / मुखौटा जो इस बंदरगाह तक पहुंच सकता है।
  • protocol - (वैकल्पिक, स्ट्रिंग) प्रोटोकॉल जो इस बंदरगाह पर उपयोग किया जा सकता है, टीसीपी के लिए चूक।

अतिरिक्त होस्ट

host कॉन्फ़िगरेशन के भीतर एक ब्लॉक है जिसे कंटेनर के लिए अतिरिक्त होस्ट मैपिंग को निर्दिष्ट करने के लिए दोहराया जा सकता है। प्रत्येक host ब्लॉक निम्नलिखित का समर्थन करता है:

  • host - (आवश्यक, स्ट्रिंग) होस्टनाम जोड़ने के लिए।
  • ip - (आवश्यक, स्ट्रिंग) आईपी पता इस hostname को हल करना चाहिए।

यह डॉकर CLI के run कमांड का उपयोग करते समय --add-host विकल्प का उपयोग करने के बराबर है।

वॉल्यूम

volumes कॉन्फ़िगरेशन के भीतर एक ब्लॉक है जिसे कंटेनर से जुड़ी वॉल्यूम को निर्दिष्ट करने के लिए दोहराया जा सकता है। प्रत्येक volumes ब्लॉक निम्नलिखित का समर्थन करता है:

  • from_container - (वैकल्पिक, स्ट्रिंग) वह कंटेनर जहां से वॉल्यूम आ रहा है।
  • host_path - (वैकल्पिक, स्ट्रिंग) होस्ट पर पथ जहां से वॉल्यूम आ रहा है।
  • volume_name - (वैकल्पिक, स्ट्रिंग) volume_name वॉल्यूम का नाम जिसे माउंट किया जाना चाहिए।
  • container_path - (वैकल्पिक, स्ट्रिंग) कंटेनर में पथ जहां वॉल्यूम माउंट किया जाएगा।
  • read_only - (वैकल्पिक, बूल) यदि सही है, तो यह मात्रा आसानी से read_only जाएगी। झूठे की अवहेलना करता है।

from_container , host_path या volume_name को सेट करना होगा।

फाइल अपलोड

upload कॉन्फ़िगरेशन के भीतर एक ब्लॉक है जिसे शुरू करने से पहले कंटेनर में अपलोड करने के लिए फ़ाइलों को निर्दिष्ट करने के लिए दोहराया जा सकता है। प्रत्येक upload निम्नलिखित का समर्थन करता है

  • content - (आवश्यक, स्ट्रिंग) अपलोड करने के लिए फ़ाइल की एक सामग्री।
  • file - (आवश्यक, स्ट्रिंग) कंटेनर में एक फ़ाइल के लिए पथ।
  • executable - (वैकल्पिक, बूल) यदि सही है, तो फ़ाइल को उपयोगकर्ता के निष्पादन योग्य अनुमति के साथ अपलोड किया जाएगा। झूठे की अवहेलना करता है।

उपकरण

devices कॉन्फ़िगरेशन के भीतर एक ब्लॉक है जिसे कंटेनर में उजागर किए गए उपकरणों को निर्दिष्ट करने के लिए दोहराया जा सकता है। प्रत्येक devices ब्लॉक निम्न का समर्थन करता है:

  • host_path - (आवश्यक, स्ट्रिंग) होस्ट पर पथ जहां डिवाइस स्थित है।
  • container_path - (वैकल्पिक, स्ट्रिंग) कंटेनर में पथ जहां डिवाइस बाँधा जाएगा।
  • permissions - (वैकल्पिक, स्ट्रिंग) डिवाइस तक पहुँचने के लिए कंटेनर को दिए गए cgroup अनुमतियाँ। rwm लिए rwm

Ulimits

ulimit कॉन्फ़िगरेशन के भीतर एक ब्लॉक है जिसे कंटेनर के लिए अतिरिक्त ulimits निर्दिष्ट करने के लिए दोहराया जा सकता है। प्रत्येक ulimit ब्लॉक निम्नलिखित का समर्थन करता है:

  • name - (आवश्यक, स्ट्रिंग)
  • soft - (आवश्यक, int)
  • hard - (आवश्यक, int)

संदर्भ संदर्भित करता है

निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • ip_address - इसके NetworkSettings से पढ़े गए अनुसार कंटेनर का IP पता।
  • ip_prefix_length - NetworkSettings से पढ़ने के रूप में कंटेनर की IP उपसर्ग लंबाई।
  • gateway - कंटेनर का नेटवर्क गेटवे जैसा कि उसके नेटवर्कसेटिंग से पढ़ा जाता है।
  • bridge - कंटेनर का नेटवर्क ब्रिज जैसा कि उसके NetworkSettings से पढ़ा जाता है।

[linkdoc] https://docs.docker.com/network/links/