{"id":35006,"date":"2023-12-21T00:38:59","date_gmt":"2024-02-16T21:21:04","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/"},"modified":"2024-05-04T14:32:38","modified_gmt":"2024-05-04T06:32:38","slug":"%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/","title":{"rendered":"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam"},"content":{"rendered":"<h1>\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swarm\u5427<\/h1>\n<p>\u4ee5\u4e0b\u662f\u539f\u6587\u7684\u4e2d\u6587\u91ca\u4e49\uff1ahttps:\/\/docs.docker.com\/swarm\/install-w-machine\/<\/p>\n<p>\u672c\u9875\u9762\u5c06\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Docker Machine\u548cVirtualBox\u5728\u672c\u5730\u673a\u5668\u4e0a\u521b\u5efaDocker Swarm\u96c6\u7fa4\u3002\u4e00\u65e6\u521b\u5efa\u5e76\u4f7f\u7528\u4e86swarm\uff0c\u60a8\u5c31\u53ef\u4ee5\u5728\u4e91\u63d0\u4f9b\u5546\u6216\u81ea\u5df1\u7684\u7f51\u7edc\u4e0a\u8fdb\u884c\u6d4b\u8bd5\u6027\u7684\u90e8\u7f72\u3002<\/p>\n<p>\u8bf7\u60a8\u8bb0\u4f4f\uff0cDocker Swarm \u76ee\u524d\u662f\u4e00\u4e2a beta \u7248\u672c\uff0c\u6240\u4ee5\u5185\u5bb9\u53ef\u80fd\u4f1a\u53d1\u751f\u53d8\u5316\u3002\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u4f7f\u7528\u5b83\u76ee\u524d\u8fd8\u4e0d\u88ab\u63a8\u8350\u3002<\/p>\n<h2>\u5fc5\u987b\u7684\u8981\u7d20<\/h2>\n<p>\u68c0\u67e5\u672c\u5730\u7cfb\u7edf\u662f\u5426\u5b89\u88c5\u4e86VirtualBox\u3002\u5982\u679c\u60a8\u5728Mac OS X\u6216Windows\u4e0a\u4f7f\u7528Docker\uff0c\u5219VirtualBox\u5df2\u7ecf\u5b89\u88c5\u5b8c\u6210\u3002<\/p>\n<h2>\u521b\u5efa Docker Swarm<\/h2>\n<p>Docker Machine\u53ef\u4ee5\u5728\u4e3b\u673a\u4e0a\u8fd0\u884cDocker\u5bb9\u5668\u3002Docker Swarm\u7684\u6bcf\u4e2a\u8282\u70b9\u90fd\u9700\u8981\u8bbf\u95eeDocker\u4ee5\u83b7\u53d6\u6620\u50cf\u5e76\u6267\u884c\u5bb9\u5668\u3002Docker Machine\u5c06\u7ba1\u7406Swarm\u96c6\u7fa4\u7684\u6240\u6709\u914d\u7f6e\u3002<\/p>\n<p>\u5728\u521b\u5efa\u96c6\u7fa4\u4e4b\u524d\uff0c\u9996\u5148\u8981\u521b\u5efa\u4e00\u4e2a\u53d1\u73b0\u4ee4\u724c\uff08discovery token\uff09\u3002Docker Swarm \u4f7f\u7528\u4ee4\u724c\u6765\u8fdb\u884c\u53d1\u73b0\u8282\u70b9\u548c\u4ee3\u7406\u6ce8\u518c\u3002\u4f7f\u7528\u8fd9\u4e2a\u4ee4\u724c\u53ef\u4ee5\u5b89\u5168\u5730\u521b\u5efa swarm \u96c6\u7fa4\u3002<\/p>\n<ol>\u5c55\u793a\u7cfb\u7edf\u5185\u7684\u673a\u5668\u6e05\u5355\u3002<\/ol>\n<pre class=\"post-pre\"><code>$ docker-machine ls\r\nNAME   ACTIVE   DRIVER       STATE     URL                         SWARM\r\ndev    *        virtualbox   Running   tcp:\/\/192.168.99.100:2376   \r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u4f8b\u5b50\u662f\u5728\u5b89\u88c5\u4e86boot2docker\u7684Mac OS X\u7cfb\u7edf\u4e0a\u3002\u5b83\u663e\u793a\u4e86\u5728boot2docker\u673a\u5668\u4e0a\u521b\u5efa\u7684\u540d\u4e3adev\u7684\u73af\u5883\u3002<\/p>\n<p>\u5728\u7cfb\u7edf\u4e0a\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&#8221;local&#8221;\u7684VirtualBox\u865a\u62df\u673a\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker-machine create -d virtualbox local\r\nINFO[0000] Creating SSH key...                          \r\nINFO[0000] Creating VirtualBox VM...                    \r\nINFO[0005] Starting VirtualBox VM...                    \r\nINFO[0005] Waiting for VM to start...                   \r\nINFO[0050] \"local\" has been created and is now the active machine. \r\nINFO[0050] To point your Docker client at it, run this in your shell: eval \"$(docker-machine env local)\" \r\n<\/code><\/pre>\n<p>3. \u5c06\u8fde\u63a5\u5230\u672c\u5730\u673a\u5668\u7684\u73af\u5883\u8bbe\u7f6e\u52a0\u8f7d\u5230shell\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>$ eval \"$(docker-machine env local)\"\r\n<\/code><\/pre>\n<p>\u4f7f\u7528Docker Swarm\u955c\u50cf\u6765\u751f\u6210\u53d1\u73b0\u6807\u8bb0\u7684\u4ee4\u724c\u3002<\/p>\n<p>\u4e0b\u9762\u7684swarm create\u547d\u4ee4\u5c06\u5728\u5bb9\u5668\u4e0a\u6267\u884c\u3002\u5982\u679c\u672c\u5730\u673a\u5668\u4e0a\u4e0d\u5b58\u5728swarm:latest\u955c\u50cf\uff0cDocker\u5c06\u81ea\u52a8\u83b7\u53d6\u5b83\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker run swarm create\r\nUnable to find image 'swarm:latest' locally\r\nlatest: Pulling from swarm\r\nde939d6ed512: Pull complete \r\n79195899a8a4: Pull complete \r\n79ad4f2cc8e0: Pull complete \r\n0db1696be81b: Pull complete \r\nae3b6728155e: Pull complete \r\n57ec2f5f3e06: Pull complete \r\n73504b2882a3: Already exists \r\nswarm:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.\r\nDigest: sha256:aaaf6c18b8be01a75099cc554b4fb372b8ec677ae81764dcdf85470279a61d6f\r\nStatus: Downloaded newer image for swarm:latest\r\nfe0cc96a72cf04dba8c1c4aa79536ec3\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a swarm crate \u547d\u4ee4\u8fd4\u56de\u4e86\u4ee4\u724c fe0cc96a72cf04dba8c1c4aa79536ec3\u3002<\/p>\n<p>5. \u5c06\u4ee4\u724c\u5b58\u653e\u5728\u4e00\u4e2a\u5b89\u5168\u7684\u5730\u65b9\u3002<\/p>\n<p>\u4f7f\u7528\u751f\u6210\u7684\u4ee4\u724c\uff0c\u7ee7\u7eed\u4e0b\u9762\u7684\u6b65\u9aa4\u6765\u521b\u5efaDocker Swarm\u3002<\/p>\n<h2>\u542f\u52a8Swarm manager\u3002<\/h2>\n<p>\u5728\u60a8\u7684\u7f51\u7edc\u4e0a\u6709\u4e00\u4e2a\u5355\u4e00\u7684\u7cfb\u7edf\uff0c\u88ab\u79f0\u4e3aDocker Swarm\u7ba1\u7406\u5668\u3002Swarm Manager\u8d1f\u8d23\u5728\u6574\u4e2a\u96c6\u7fa4\u4e2d\u7684\u7f16\u6392\u548c\u5bb9\u5668\u7684\u8c03\u5ea6\u3002Swarm Manager\u6307\u6325\u4ee3\u7406\u7fa4\uff08\u4e5f\u79f0\u4e3a\u8282\u70b9\u6216Docker\u8282\u70b9\uff09\u3002<\/p>\n<p>\u6e38\u6cf3\u4ee3\u7406\u662f\u8d1f\u8d23\u5bb9\u5668\u6258\u7ba1\u7684\u7ec4\u4ef6\u3002\u5b83\u4eec\u901a\u5e38\u662f\u666e\u901a\u7684Docker\u5b88\u62a4\u7a0b\u5e8f\uff0c\u5e76\u4e14\u53ef\u4ee5\u901a\u8fc7Docker\u8fdc\u7a0bAPI\u8fdb\u884c\u901a\u4fe1\u3002<\/p>\n<p>\u5728\u8fd9\u4e00\u7ae0\u4e2d\uff0c\u6211\u4eec\u5c06\u521b\u5efaSwam Manager\u548c\u4e24\u4e2a\u8282\u70b9\u3002<\/p>\n<ol>\u521b\u5efa\u865a\u62df\u673a\u4e2d\u7684Swarm\u7ba1\u7406\u5668\u3002<\/ol>\n<pre class=\"post-pre\"><code>docker-machine create \\\r\n        -d virtualbox \\\r\n        --swarm \\\r\n        --swarm-master \\\r\n        --swarm-discovery token:\/\/&lt;TOKEN-FROM-ABOVE&gt; \\\r\n        swarm-master\r\n<\/code><\/pre>\n<p>\u6267\u884c\u793a\u4f8b\uff1a<\/p>\n<pre class=\"post-pre\"><code>$ docker-machine create -d virtualbox --swarm --swarm-master --swarm-discovery token:\/\/fe0cc96a72cf04dba8c1c4aa79536ec3 swarm-master\r\nINFO[0000] Creating SSH key...                          \r\nINFO[0000] Creating VirtualBox VM...                    \r\nINFO[0005] Starting VirtualBox VM...                    \r\nINFO[0005] Waiting for VM to start...                   \r\nINFO[0060] \"swarm-master\" has been created and is now the active machine. \r\nINFO[0060] To point your Docker client at it, run this in your shell: eval \"$(docker-machine env swarm-master)\" \r\n<\/code><\/pre>\n<p>\u6253\u5f00VirtualBox\u7ba1\u7406\u5668\uff08\u5728\u7535\u8111\u4e0a\uff09\uff0c\u60a8\u4f1a\u770b\u5230\u4e00\u4e2a\u672c\u5730\u673a\u5668\u548c\u4e00\u4e2a\u65b0\u7684swarm-master\u673a\u5668\u3002<\/p>\n<p>3. \u521b\u5efa Swarm \u8282\u70b9\u3002<\/p>\n<pre class=\"post-pre\"><code>    docker-machine create \\\r\n    -d virtualbox \\\r\n    --swarm \\\r\n    --swarm-discovery token:\/\/&lt;TOKEN-FROM-ABOVE&gt; \\\r\n    swarm-agent-00\r\n<\/code><\/pre>\n<p>Example of execution:<\/p>\n<pre class=\"post-pre\"><code>$ docker-machine create -d virtualbox --swarm --swarm-discovery token:\/\/fe0cc96a72cf04dba8c1c4aa79536ec3 swarm-agent-00\r\nINFO[0000] Creating SSH key...                          \r\nINFO[0000] Creating VirtualBox VM...                    \r\nINFO[0005] Starting VirtualBox VM...                    \r\nINFO[0006] Waiting for VM to start...                   \r\nINFO[0066] \"swarm-agent-00\" has been created and is now the active machine. \r\nINFO[0066] To point your Docker client at it, run this in your shell: eval \"$(docker-machine env swarm-agent-00)\" \r\n<\/code><\/pre>\n<p>\u6211\u5011\u5c07\u65b0\u589e\u4e00\u4f4d\u540d\u70baswam-agent-01\u7684\u5176\u4ed6\u4ee3\u7406\u4eba\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker-machine create -d virtualbox --swarm --swarm-discovery token:\/\/fe0cc96a72cf04dba8c1c4aa79536ec3 swarm-agent-01\r\n<\/code><\/pre>\n<p>\u5728VirtualBox\u7ba1\u7406\u5668\u4e2d\uff0c\u4f1a\u663e\u793a\u4e24\u4e2a\u4ee3\u7406\u3002<\/p>\n<h2>\u76f4\u63a5\u8fde\u63a5\u5230Swam<\/h2>\n<p>\u5728\u8fd9\u4e2a\u6b65\u9aa4\u4e2d\uff0c\u8fde\u63a5\u5230Swarm\u673a\u5668\u5e76\u663e\u793a\u4e0eSwarm\u96c6\u7fa4\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u7136\u540e\u5728Swarm\u96c6\u7fa4\u4e0a\u542f\u52a8\u955c\u50cf\u3002<\/p>\n<ol>\u6307\u5b9a Swarm \u7ba1\u7406\u7684\u673a\u5668\u4e0a\u6b63\u5728\u8fd0\u884c\u7684 Docker \u73af\u5883\u53d8\u91cf\u3002<\/ol>\n<pre class=\"post-pre\"><code>$ eval $(docker-machine env --swarm swarm-master)\r\n<\/code><\/pre>\n<p>\u4f7f\u7528Docker\u547d\u4ee4\uff0c\u83b7\u53d6\u65b0\u521b\u5efa\u7684Swarm\u96c6\u7fa4\u7684\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker info\r\nContainers: 4\r\nStrategy: spread\r\nFilters: affinity, health, constraint, port, dependency\r\nNodes: 3\r\n swarm-agent-00: 192.168.99.105:2376\r\n    \u2514 Containers: 1\r\n    \u2514 Reserved CPUs: 0 \/ 8\r\n    \u2514 Reserved Memory: 0 B \/ 1.023 GiB\r\n swarm-agent-01: 192.168.99.106:2376\r\n    \u2514 Containers: 1\r\n    \u2514 Reserved CPUs: 0 \/ 8\r\n    \u2514 Reserved Memory: 0 B \/ 1.023 GiB\r\n swarm-master: 192.168.99.104:2376\r\n    \u2514 Containers: 2\r\n    \u2514 Reserved CPUs: 0 \/ 8\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u4ee3\u7406\u548c\u4e3b\u8282\u70b9\u90fd\u516c\u5f00\u4e86\u7aef\u53e32376\u3002\u5728\u521b\u5efaSwarm\u96c6\u7fa4\u65f6\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u7aef\u53e3\uff0c\u4e5f\u53ef\u4ee5\u5728\u6bcf\u4e2a\u8282\u70b9\u4e0a\u4f7f\u7528\u4e0d\u540c\u7684\u7aef\u53e3\u3002\u6bcf\u4e2aSwarm\u8282\u70b9\u90fd\u8fd0\u884cSwarm\u4ee3\u7406\u5bb9\u5668\u3002<\/p>\n<p>\u30de\u30b9\u30bf\u306fSwarm Manager\u304a\u3088\u3073Swarm\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30b3\u30f3\u30c6\u30ca\u306e\u4e21\u65b9\u3067\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u306b\u95a2\u3059\u308b\u554f\u984c\u304c\u3042\u308b\u305f\u3081\u3001\u672c\u756a\u74b0\u5883\u3067\u306e\u5229\u7528\u306f\u63a8\u5968\u3055\u308c\u307e\u305b\u3093\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u3088\u3046\u306a\u72b6\u6cc1\u306f\u3001\u52d5\u4f5c\u74b0\u5883\u3092\u5b66\u3076\u305f\u3081\u306b\u306f\u975e\u5e38\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n<ol>\u6211\u4eec\u4f1a\u5728Swam\u96c6\u7fa4\u4e0a\u68c0\u67e5\u6b63\u5728\u8fd0\u884c\u7684\u955c\u50cf\u3002<\/ol>\n<pre class=\"post-pre\"><code>$ docker ps  -a\r\nCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                                     NAMES\r\n78be991b58d1        swarm:latest        \"\/swarm join --addr    3 minutes ago       Up 2 minutes        2375\/tcp                                  swarm-agent-01\/swarm-agent        \r\nda5127e4f0f9        swarm:latest        \"\/swarm join --addr    6 minutes ago       Up 6 minutes        2375\/tcp                                  swarm-agent-00\/swarm-agent        \r\nef395f316c59        swarm:latest        \"\/swarm join --addr    16 minutes ago      Up 16 minutes       2375\/tcp                                  swarm-master\/swarm-agent          \r\n45821ca5208e        swarm:latest        \"\/swarm manage --tls   16 minutes ago      Up 16 minutes       2375\/tcp, 192.168.99.104:3376-&gt;3376\/tcp   swarm-master\/swarm-agent-master \r\n<\/code><\/pre>\n<p>\u5728 Swam \u96c6\u7fa4\u4e0a\u6267\u884c Docker \u7684 hello-world \u6d4b\u8bd5\u955c\u50cf\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker run hello-world\r\nHello from Docker.\r\nThis message shows that your installation appears to be working correctly.\r\n\r\n\r\nTo generate this message, Docker took the following steps:\r\n 1. The Docker client contacted the Docker daemon.\r\n 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\r\n        (Assuming it was not already locally available.)\r\n 3. The Docker daemon created a new container from that image which runs the\r\n        executable that produces the output you are currently reading.\r\n 4. The Docker daemon streamed that output to the Docker client, which sent it\r\n        to your terminal.\r\n\r\n\r\nTo try something more ambitious, you can run an Ubuntu container with:\r\n $ docker run -it ubuntu bash\r\n\r\n\r\nFor more examples and ideas, visit:\r\n http:\/\/docs.docker.com\/userguide\/\r\n<\/code><\/pre>\n<p>\u4f7f\u7528docker ps\u547d\u4ee4\uff0c\u786e\u8ba4\u5728\u54ea\u4e2a\u8282\u70b9\u4e0a\u8fd0\u884c\u7740\u54ea\u4e2a\u5bb9\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code>$ docker ps -a\r\nCONTAINER ID        IMAGE                COMMAND                CREATED             STATUS                     PORTS                                     NAMES\r\n54a8690043dd        hello-world:latest   \"\/hello\"               22 seconds ago      Exited (0) 3 seconds ago                                             swarm-agent-00\/modest_goodall     \r\n78be991b58d1        swarm:latest         \"\/swarm join --addr    5 minutes ago       Up 4 minutes               2375\/tcp                                  swarm-agent-01\/swarm-agent        \r\nda5127e4f0f9        swarm:latest         \"\/swarm join --addr    8 minutes ago       Up 8 minutes               2375\/tcp                                  swarm-agent-00\/swarm-agent        \r\nef395f316c59        swarm:latest         \"\/swarm join --addr    18 minutes ago      Up 18 minutes              2375\/tcp                                  swarm-master\/swarm-agent          \r\n45821ca5208e        swarm:latest         \"\/swarm manage --tls   18 minutes ago      Up 18 minutes              2375\/tcp, 192.168.99.104:3376-&gt;3376\/tcp   swarm-master\/swarm-agent-master \r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swarm\u5427 \u4ee5\u4e0b\u662f\u539f\u6587\u7684\u4e2d\u6587\u91ca\u4e49\uff1ahttps:\/\/docs.docker.com [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35006","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>\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam - 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\/\u5f00\u59cb\u4f7f\u7528docker-swarm-\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528docker-swam\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam\" \/>\n<meta property=\"og:description\" content=\"\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swarm\u5427 \u4ee5\u4e0b\u662f\u539f\u6587\u7684\u4e2d\u6587\u91ca\u4e49\uff1ahttps:\/\/docs.docker.com [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5f00\u59cb\u4f7f\u7528docker-swarm-\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528docker-swam\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-16T21:21:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T06:32:38+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\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\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/\",\"name\":\"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-02-16T21:21:04+00:00\",\"dateModified\":\"2024-05-04T06:32:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam\"}]},{\"@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\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam - 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\/\u5f00\u59cb\u4f7f\u7528docker-swarm-\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528docker-swam\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam","og_description":"\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swarm\u5427 \u4ee5\u4e0b\u662f\u539f\u6587\u7684\u4e2d\u6587\u91ca\u4e49\uff1ahttps:\/\/docs.docker.com [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5f00\u59cb\u4f7f\u7528docker-swarm-\u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528docker-swam\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-02-16T21:21:04+00:00","article_modified_time":"2024-05-04T06:32:38+00:00","author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/","name":"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-02-16T21:21:04+00:00","dateModified":"2024-05-04T06:32:38+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5f00\u59cb\u4f7f\u7528Docker Swarm: \u8ba9\u6211\u4eec\u5f00\u59cb\u4f7f\u7528Docker Swam"}]},{"@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\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swarm-%e8%ae%a9%e6%88%91%e4%bb%ac%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8docker-swam\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35006","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=35006"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35006\/revisions"}],"predecessor-version":[{"id":98892,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35006\/revisions\/98892"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=35006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=35006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=35006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}