{"id":49029,"date":"2023-04-18T21:26:21","date_gmt":"2023-07-30T04:42:17","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/"},"modified":"2024-04-30T00:09:07","modified_gmt":"2024-04-29T16:09:07","slug":"%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/","title":{"rendered":"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI)"},"content":{"rendered":"<h2>\u9996\u5148<\/h2>\n<p>\u6700\u8fd1\uff0cHashiCorp\u5f00\u59cb\u652f\u6301Oracle Cloud Infrastructure Terraform Provider\uff0c\u56e0\u6b64\u6211\u5c1d\u8bd5\u4e86\u4e00\u4e0b\uff0c\u53d1\u73b0\u73b0\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ef\u4ee5\u4f7f\u7528OCI\u3002<\/p>\n<h2>\u8bf7\u63d0\u4f9b\u4e0b\u5217\u53c2\u8003\u8d44\u6599\u7684\u4e2d\u6587\u7ffb\u8bd1\u3002<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">terraform Docker Container<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3(CLI)\u3067OCI\u3092\u64cd\u4f5c\u3059\u308b &#8211; Oracle Cloud Infrastructure\u30a2\u30c9\u30d0\u30f3\u30b9\u30c9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Terraform\u3067OCI\u306e\u69cb\u7bc9\u3092\u81ea\u52d5\u5316\u3059\u308b &#8211; Oracle Cloud Infrastructure\u30a2\u30c9\u30d0\u30f3\u30b9\u30c9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Terraform Provider for Oracle Cloud Infrastructure \u306e\u5c0e\u5165<\/ul>\n<h2>\u83b7\u53d6Terraform\u7684Docker\u955c\u50cf<\/h2>\n<p>\u4f7f\u7528Hashicorp\u5b98\u65b9\u4ed3\u5e93\u63d0\u4f9b\u7684\u955c\u50cf\u3002<br \/>\n\u7531\u4e8eSIZE\u4e3a131MB\uff0c\u6240\u4ee5\u76f8\u5bf9\u8f83\u8f7b\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker pull hashicorp\/terraform:light\r\n$ docker images\r\nREPOSITORY            TAG                 IMAGE ID            CREATED             SIZE\r\nhashicorp\/terraform   light               29edcab3b90b        2 weeks ago         131MB\r\n<\/code><\/pre>\n<p>\u60a8\u53ef\u4ee5\u6309\u7167\u4e0b\u9762\u7684\u6307\u793a\u6267\u884c\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>docker run -i -t hashicorp\/terraform:light &lt;command&gt;\r\n<\/code><\/pre>\n<p>\u8bd5\u8bd5\u7248\u672c\u786e\u8ba4<\/p>\n<pre class=\"post-pre\"><code>$ docker run -i -t hashicorp\/terraform:light --version\r\nTerraform v0.11.11\r\n<\/code><\/pre>\n<h2>\u9884\u5148\u51c6\u5907\u4ee5\u6267\u884c\u7684\u76f8\u5173\u4e8b\u9879\uff08OCI\uff09\u3002<\/h2>\n<h3>\u521b\u5efa API \u5bc6\u94a5<\/h3>\n<pre class=\"post-pre\"><code>mkdir -p ~\/.oci\r\nopenssl genrsa -out ~\/.oci\/oci_tf_key.pem 2048\r\nchmod go-rwx ~\/.oci\/oci_tf_key.pem\r\nopenssl rsa -pubout -in ~\/.oci\/oci_tf_key.pem -out ~\/.oci\/oci_tf_key_public.pem\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>cat ~\/.oci\/oci_tf_key_public.pem\r\n## \u51fa\u529b\u2460 \u30e1\u30e2\u3057\u3066\u304a\u304d\u307e\u3059\u3002\r\nopenssl rsa -pubout -outform DER -in ~\/.oci\/oci_tf_key.pem | openssl md5 -c\r\n## \u51fa\u529b\u2461 \u30e1\u30e2\u3057\u3066\u304a\u304d\u307e\u3059\r\n<\/code><\/pre>\n<h3>\u6ce8\u518cAPI\u5bc6\u94a5<\/h3>\n<p>\u5728OCI\u4e2d\u521b\u5efa\u7528\u6237\u3002<br \/>\n\u70b9\u51fb[\u83dc\u5355] &gt; [\u8eab\u4efd] &gt; [\u7528\u6237]\uff0c\u8fdb\u5165\u7528\u6237\u754c\u9762\u3002<br \/>\n\u70b9\u51fb[\u521b\u5efa\u7528\u6237]\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d889f913a08637a6c38d6\/17-0.png\" alt=\"ss_1_2019-01-02.png\" \/><\/div>\n<p>\u521b\u5efa\u7528\u6237\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d889f913a08637a6c38d6\/19-0.png\" alt=\"ss_2_2019-01-02.png\" \/><\/div>\n<p>\u8fdb\u5165\u521b\u5efa\u7684\u7528\u6237\u754c\u9762\uff0c\u9009\u62e9[\u6dfb\u52a0\u516c\u94a5]\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d889f913a08637a6c38d6\/21-0.png\" alt=\"ss_3_2019-01-03.png\" \/><\/div>\n<p>\u6253\u5f00\u4e00\u4e2a\u9875\u9762\u4ee5\u8f93\u5165\u516c\u94a5\uff0c\u7136\u540e\u5c06\u4e4b\u524d\u8bb0\u4e0b\u7684&#8221;\u8f93\u51fa\u2460&#8221;\u7c98\u8d34\u4e0a\u53bb\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d889f913a08637a6c38d6\/23-0.png\" alt=\"ss_4_2019-01-03.png\" \/><\/div>\n<h2>\u4e3a\u4e86\u6267\u884c\u524d\u671f\u51c6\u5907\uff08Terraform\uff09\u505a\u597d\u51c6\u5907\u3002<\/h2>\n<p>\u9996\u5148\uff0c\u51c6\u5907\u4e00\u4e2a\u6267\u884cTerraform\u4ee5\u663e\u793aAD1\u7684\u6587\u4ef6\u3002<\/p>\n<h3>\u521b\u5efa\u73af\u5883\u53d8\u91cf\u6587\u4ef6<\/h3>\n<p>\u60a8\u53ef\u4ee5\u5728Terraform\u4e2d\u4f7f\u7528tenancy_ocid\u7b49\u914d\u7f6e\u503c\u81ea\u52a8\u521b\u5efaOCI &#8211; \u53c2\u8003Oracle Cloud Infrastructure\u9ad8\u7ea7\u6307\u5357\u6765\u4e86\u89e3\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4e0a\u8ff0\u63d0\u5230\u7684\u201c\u8f93\u51fa\u2461\u201d\u6765\u83b7\u53d6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">tenancy_ocid<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"&lt;tenancy OCID&gt;\"<\/span>\r\n<span class=\"nx\">user_ocid<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"&lt;user OCID&gt;\"<\/span>\r\n<span class=\"nx\">fingerprint<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"\"<\/span><span class=\"err\">&lt;<\/span><span class=\"nx\">PEM<\/span> <span class=\"nx\">key<\/span> <span class=\"nx\">fingerprint<\/span><span class=\"err\">&gt;<\/span><span class=\"s2\">\"\r\nregion = \"<\/span><span class=\"err\">&lt;<\/span><span class=\"nx\">region<\/span> <span class=\"nx\">in<\/span> <span class=\"nx\">which<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">operate<\/span><span class=\"err\">,<\/span> <span class=\"nx\">example<\/span><span class=\"err\">:<\/span> <span class=\"nx\">us<\/span><span class=\"err\">-<\/span><span class=\"nx\">ashburn<\/span><span class=\"err\">-<\/span><span class=\"mi\">1<\/span><span class=\"err\">,<\/span> <span class=\"nx\">us<\/span><span class=\"err\">-<\/span><span class=\"nx\">phoenix<\/span><span class=\"err\">-<\/span><span class=\"mi\">1<\/span><span class=\"err\">&gt;<\/span><span class=\"s2\">\"\r\ncompartment_ocid = \"<\/span><span class=\"err\">&lt;<\/span><span class=\"nx\">compartment<\/span> <span class=\"nx\">OCID<\/span><span class=\"err\">&gt;<\/span><span class=\"s2\">\"\r\nssh_public_key = \"<\/span><span class=\"nx\">id_rsa<\/span><span class=\"err\">.<\/span><span class=\"nx\">pub<\/span><span class=\"s2\">\" \u2605\u4eca\u56de\u306f\u5229\u7528\u3057\u306a\u3044\r\nprivate_key_path = \"<\/span><span class=\"nx\">oci_tf_key<\/span><span class=\"err\">.<\/span><span class=\"nx\">pem<\/span><span class=\"s2\">\" \u2605\u5f8c\u8ff0\u306e\u624b\u9806\u3067\u9375\u3092Terraform\u5b9f\u884c\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u76f4\u63a5\u914d\u7f6e\u3059\u308b\u306e\u3067\u4e0a\u3067\u4f5c\u6210\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u8a18\u8f09\r\n<\/span><\/code><\/pre>\n<h3>\u83b7\u53d6AD1\u7684\u540d\u79f0\u7684Terraform\u6587\u4ef6\u3002<\/h3>\n<pre class=\"post-pre\"><code><span class=\"k\">variable<\/span> <span class=\"s2\">\"tenancy_ocid\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"k\">variable<\/span> <span class=\"s2\">\"user_ocid\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"k\">variable<\/span> <span class=\"s2\">\"fingerprint\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"k\">variable<\/span> <span class=\"s2\">\"private_key_path\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"k\">variable<\/span> <span class=\"s2\">\"compartment_ocid\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"k\">variable<\/span> <span class=\"s2\">\"ssh_public_key\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"k\">variable<\/span> <span class=\"s2\">\"region\"<\/span> <span class=\"p\">{}<\/span>\r\n\r\n<span class=\"k\">provider<\/span> <span class=\"s2\">\"oci\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">tenancy_ocid<\/span>         <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">tenancy_ocid<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n  <span class=\"nx\">user_ocid<\/span>            <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">user_ocid<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n  <span class=\"nx\">fingerprint<\/span>          <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">fingerprint<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n  <span class=\"nx\">private_key_path<\/span>     <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">private_key_path<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n  <span class=\"nx\">region<\/span>               <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">region<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n  <span class=\"nx\">disable_auto_retries<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"true\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">data<\/span> <span class=\"s2\">\"oci_identity_availability_domains\"<\/span> <span class=\"s2\">\"ADs\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">compartment_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">tenancy_ocid<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">output<\/span> <span class=\"s2\">\"ADprint\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">value<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"nx\">lookup<\/span><span class=\"p\">(<\/span><span class=\"k\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">oci_identity_availability_domains<\/span><span class=\"p\">.<\/span><span class=\"nx\">ADs<\/span><span class=\"p\">.<\/span><span class=\"nx\">availability_domains<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"s2\">\"name\"<\/span><span class=\"p\">)<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u51c6\u5907\u516c\u5f00\u5bc6\u94a5<\/h3>\n<p>\u5bf9\u4e8eDocker\u4e2d\u7684Terraform\uff0c\u6211\u4eec\u5c06\u4f7f\u5fc5\u8981\u7684\u6587\u4ef6\uff08\u5982\u516c\u94a5\uff09\u53ef\u5728\u5bb9\u5668\u4e2d\u53ef\u89c1\uff0c\u4ee5\u4fbf\u6267\u884cTerraform\u64cd\u4f5c\u3002<br \/>\n\u672c\u6b21\u5c06\u628a\u5728API\u5bc6\u94a5\u521b\u5efa\u4e2d\u751f\u6210\u7684\u6587\u4ef6\u653e\u7f6e\u5728\u4e0e.tf\u6587\u4ef6\u76f8\u540c\u7684\u4f4d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>cp -p ~\/.oci\/oci_tf_key.pem &lt;\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u7f6e\u5148&gt;\r\n<\/code><\/pre>\n<h2>\u8fdb\u884c<\/h2>\n<h3>\u521d\u59cb\u5316<\/h3>\n<pre class=\"post-pre\"><code>$ cd &lt;\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u7f6e\u5148&gt;\r\n$ docker run -i -t -v $(pwd):\/app\/ -w \/app\/ hashicorp\/terraform:light init\r\n\r\nInitializing provider plugins...\r\n- Checking for available provider plugins on https:\/\/releases.hashicorp.com...\r\n- Downloading plugin for provider \"oci\" (3.11.0)...\r\n\r\nThe following providers do not have any version constraints in configuration,\r\nso the latest version was installed.\r\n\r\nTo prevent automatic upgrades to new major versions that may contain breaking\r\nchanges, it is recommended to add version = \"...\" constraints to the\r\ncorresponding provider blocks in configuration, with the constraint strings\r\nsuggested below.\r\n\r\n* provider.oci: version = \"~&gt; 3.11\"\r\n\r\nTerraform has been successfully initialized!\r\n\r\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\r\nany changes that are required for your infrastructure. All Terraform commands\r\nshould now work.\r\n\r\nIf you ever set or change modules or backend configuration for Terraform,\r\nrerun this command to reinitialize your working directory. If you forget, other\r\ncommands will detect it and remind you to do so if necessary.\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u662f\u5492\u8bed\uff0c\u6240\u4ee5\u9700\u8981\u53c2\u6570\u7684\u6ce8\u91ca<br \/>\n\u547d\u4ee4\u53c2\u8003 \u8fd0\u884c<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">-i \u30b3\u30f3\u30c6\u30ca\u306e STDIN \u306b\u30a2\u30bf\u30c3\u30c1<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">-t \u7591\u4f3c\u30bf\u30fc\u30df\u30ca\u30eb (pseudo-TTY) \u3092\u5272\u308a\u5f53\u3066<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">-v \u30db\u30b9\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u30b3\u30f3\u30c6\u30ca\u306b\u30de\u30a6\u30f3\u30c8\u3001\u3053\u3053\u3067\u306f\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092docker\u5185\u306e\/app\u306b\u30de\u30a6\u30f3\u30c8<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">-w \u30b3\u30f3\u30c6\u30ca\u5185\u306e\u4f5c\u696d\u7528\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6307\u5b9a<\/ul>\n<h3>\u786e\u5b9a<\/h3>\n<pre class=\"post-pre\"><code>$ docker run -i -t -v $(pwd):\/app\/ -w \/app\/ hashicorp\/terraform:light plan\r\nRefreshing Terraform state in-memory prior to plan...\r\nThe refreshed state will be used to calculate this plan, but will not be\r\npersisted to local or remote state storage.\r\n\r\ndata.oci_identity_availability_domains.ADs: Refreshing state...\r\n\r\n------------------------------------------------------------------------\r\n\r\nNo changes. Infrastructure is up-to-date.\r\n\r\nThis means that Terraform did not detect any differences between your\r\nconfiguration and real physical resources that exist. As a result, no\r\nactions need to be performed.\r\n\r\n<\/code><\/pre>\n<h3>\u7ec8\u4e8e\u5f00\u59cb\u6267\u884c<\/h3>\n<pre class=\"post-pre\"><code>$ docker run -i -t -v $(pwd):\/app\/ -w \/app\/ hashicorp\/terraform:light apply\r\ndata.oci_identity_availability_domains.ADs: Refreshing state...\r\n\r\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\r\n\r\nOutputs:\r\n\r\nADprint = gype:US-ASHBURN-AD-1\r\n<\/code><\/pre>\n<p>\u505a\u5230\u4e86\uff01\u8fd9\u6b21\u5c31\u5230\u8fd9\u91cc\uff0c\u4e0b\u6b21\u8ba1\u5212\u505a\u8d44\u6e90\u521b\u5efa\u3002<\/p>\n<h2>\u5236\u4f5c\u5feb\u6377\u547d\u4ee4\u7684\u9644\u52a0\u529f\u80fd\u3002<\/h2>\n<p>\u53ea\u9700\u5c06\u4ee5\u4e0b\u5185\u5bb9\u6dfb\u52a0\u5230\u4e2a\u4eba\u8d44\u6599\u7b49\u4f4d\u7f6e\uff0c\u5e76\u8bfb\u53d6\uff0c\u5c31\u65e0\u9700\u6bcf\u6b21\u90fd\u4f7f\u7528docker\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>terraform() { docker run -i -t -v $(pwd):\/app\/ -w \/app\/ hashicorp\/terraform:light \"$@\"; }\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>terraform --version\r\nTerraform v0.11.11\r\n<\/code><\/pre>\n<h2>\u5907\u5fd8\u5f55<\/h2>\n<p>\u4f7f\u7528Docker\u5bb9\u5668\u4e0eTerraform\u76f8\u7ed3\u5408\u65f6\u9047\u5230\u7684\u95ee\u9898\u662f\uff0c\u5fc5\u987b\u5c06\u4e3b\u673a\u7684\u73af\u5883\u53d8\u91cf\u548c\u6587\u4ef6\u4f20\u9012\u7ed9\u5bb9\u5668\u3002\u5373\u4f7f\u521b\u5efa\u5e76\u653e\u7f6e\u4e86\u73af\u5883\u53d8\u91cf\u6587\u4ef6\u5982\u4e0b\u6240\u793a\uff0c\u5bb9\u5668\u4e5f\u65e0\u6cd5\u7ee7\u627f\u73af\u5883\u53d8\u91cf\uff0c\u5bfc\u81f4\u627e\u4e0d\u5230\u53d8\u91cf\u7684\u503c\uff0c\u5e76\u663e\u793a\u9519\u8bef\u6d88\u606f\u3002<br \/>\n\u540c\u6837\uff0c\u6700\u521d\u4e5f\u6307\u5b9a\u4e86\u4e3b\u673a\u8def\u5f84\uff08\u4f4d\u4e8e\/.ssh\u4e0b\uff09\u7684private_key_path\uff0c\u4f46\u4ed4\u7ec6\u8003\u8651\u540e\uff0c\u53d1\u73b0\u5b83\u4e5f\u9700\u8981\u653e\u7f6e\u5728\u5bb9\u5668\u53ef\u89c1\u7684\u76ee\u5f55\u4e2d\u3002<br \/>\n\u7531\u4e8e\u672c\u6b21\u5e94\u7528\u7a0b\u5e8f\u5c06\u5f53\u524d\u76ee\u5f55\u6302\u8f7d\uff0c\u56e0\u6b64\u5c06\u6587\u4ef6\u6682\u65f6\u653e\u7f6e\u5728\u5f53\u524d\u76ee\u5f55\uff0c\u5e76\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u6307\u5b9a\u4e86\u8be5\u4f4d\u7f6e\u8fdb\u884c\u6267\u884c\u3002<\/p>\n<ul class=\"post-ul\">\u4ee5\u4e0b\u3092\u53c2\u8003\u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3002<\/ul>\n<p>\u73af\u5883\u53d8\u91cf<\/p>\n<ul class=\"post-ul\">\u4ee5\u4e0b\u3092\u8aad\u307f\u8fbc\u3093\u3067docker\u3067\u5b9f\u884c\u3057\u3066\u3082\u74b0\u5883\u5909\u6570\u306f\u5f15\u304d\u7d99\u304c\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/ul>\n<pre class=\"post-pre\"><code>### Authentication details\r\nexport TF_VAR_tenancy_ocid=\"&lt;tenancy OCID&gt;\"\r\nexport TF_VAR_user_ocid=\"&lt;user OCID&gt;\"\r\nexport TF_VAR_fingerprint=\"&lt;PEM key fingerprint&gt;\"\r\nexport TF_VAR_private_key_path=\"&lt;path to the private key that matches the fingerprint above&gt;\"\r\n\r\n### Region\r\nexport TF_VAR_region=\"&lt;region in which to operate, example: us-ashburn-1, us-phoenix-1&gt;\"\r\n\r\n### Compartment\r\nexport TF_VAR_compartment_ocid=\"&lt;compartment OCID&gt;\"\r\n\r\n### Public\/private keys used on the instance\r\nexport TF_VAR_ssh_public_key=$(cat &lt;path to public key&gt;)\r\nexport TF_VAR_ssh_private_key=$(cat &lt;path to private key&gt;)\r\n## NOTE: These are not your api keys. More info on the right keys see\r\n## https:\/\/docs.us-phoenix-1.oraclecloud.com\/Content\/Compute\/Tasks\/managingkeypairs.htm\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u6700\u8fd1\uff0cHashiCorp\u5f00\u59cb\u652f\u6301Oracle Cloud Infrastructure Terrafor [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-49029","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI) - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8bf7\u4f7f\u7528docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5oracle-cloud-infrastructure-oci\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI)\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u6700\u8fd1\uff0cHashiCorp\u5f00\u59cb\u652f\u6301Oracle Cloud Infrastructure Terrafor [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8bf7\u4f7f\u7528docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5oracle-cloud-infrastructure-oci\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-30T04:42:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T16:09:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d889f913a08637a6c38d6\/17-0.png\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/\",\"name\":\"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI) - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-30T04:42:17+00:00\",\"dateModified\":\"2024-04-29T16:09:07+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI) - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u8bf7\u4f7f\u7528docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5oracle-cloud-infrastructure-oci\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI)","og_description":"\u9996\u5148 \u6700\u8fd1\uff0cHashiCorp\u5f00\u59cb\u652f\u6301Oracle Cloud Infrastructure Terrafor [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u8bf7\u4f7f\u7528docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5oracle-cloud-infrastructure-oci\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-30T04:42:17+00:00","article_modified_time":"2024-04-29T16:09:07+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d889f913a08637a6c38d6\/17-0.png"}],"author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/","name":"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI) - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-30T04:42:17+00:00","dateModified":"2024-04-29T16:09:07+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u8bf7\u4f7f\u7528Docker\u7684terraform\u955c\u50cf\u6765\u5c1d\u8bd5Oracle Cloud Infrastructure (OCI)"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bd%bf%e7%94%a8docker%e7%9a%84terraform%e9%95%9c%e5%83%8f%e6%9d%a5%e5%b0%9d%e8%af%95oracle-cloud-infrastructure-oci%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=49029"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49029\/revisions"}],"predecessor-version":[{"id":88481,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49029\/revisions\/88481"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=49029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=49029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=49029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}