{"id":33702,"date":"2022-12-28T00:24:34","date_gmt":"2023-07-20T01:07:00","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/"},"modified":"2024-04-29T07:17:25","modified_gmt":"2024-04-28T23:17:25","slug":"%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/","title":{"rendered":"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm"},"content":{"rendered":"<p>\u6211\u662fCloudpack\u5927\u962a\u7684\u4f50\u3005\u6728\u3002<\/p>\n<p>\u6211\u6253\u7b97\u8bd5\u7528\u4e00\u4e0b\u70ed\u95e8\u8bdd\u9898Docker 1.12\u3002<br \/>\n\u9996\u5148\uff0c\u6211\u60f3\u8bd5\u8bd5\u88ab\u8ba4\u4e3a\u662f\u6700\u91cd\u8981\u7684\u529f\u80fd\u4e4b\u4e00\u7684swarm\u7684\u96c6\u6210\u3002<br \/>\n\u6211\u53c2\u8003\u4e86\u6559\u7a0b\uff08\u76f4\u63a5\u4f7f\u7528\u4e86\u5b83\uff09\uff0c\u5c1d\u8bd5\u4e86\u642d\u5efaswarm\u3001\u6dfb\u52a0\u670d\u52a1\u548c\u8fdb\u884c\u6eda\u52a8\u66f4\u65b0\u3002<\/p>\n<h1>Docker Swarm \u662f\u4ec0\u4e48\uff1f<\/h1>\n<p>\u8fd9\u662f\u5c06Docker\u8282\u70b9\u6346\u7ed1\u6210\u96c6\u7fa4\u7684\u529f\u80fd\u3002\u867d\u7136\u4ee5\u524d\u5df2\u7ecf\u5b58\u5728\uff0c\u4f46\u4ece\u6700\u8fd1\u53d1\u5e03\u76841.12\u7248\u672c\u5f00\u59cb\uff0c\u5df2\u7ecf\u4e0eDocker\u672c\u8eab\u96c6\u6210\uff0c\u770b\u8d77\u6765\u66f4\u52a0\u5bb9\u6613\u4f7f\u7528\u3002<\/p>\n<h1>\u73af\u5883<\/h1>\n<p>\u6211\u5df2\u7ecf\u7533\u8bf7\u4e86Docker for AWS\u7684\u79c1\u6709Beat\uff0c\u4f46\u8fd8\u6ca1\u6709\u6536\u5230\u56de\u590d\uff0c\u7531\u4e8e\u5728Docker for Mac\u4e0a\u65e0\u6cd5\u4f53\u9a8c\u5230\u96c6\u7fa4\u7684\u611f\u89c9\uff0c\u6240\u4ee5\u6211\u5728EC2\u4e0a\u5b89\u88c5\u4e861.12\u7248\u672c\u7684Docker\u6765\u5c1d\u8bd5\u3002<\/p>\n<h1>\u5b89\u88c5<\/h1>\n<p>\u56e0\u4e3a\u6211\u4e0d\u592a\u6e05\u695a\u5728Amazon Linux\u4e0a\u5b89\u88c5\u7684\u65b9\u6cd5\uff0c\u6240\u4ee5\u6211\u6253\u7b97\u53c2\u8003\u4ee5\u4e0b\u6b65\u9aa4\u5728CentOS7\u4e0a\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<p>\u7136\u800c\uff0c\u5728\u8fd9\u91cc\u5217\u51fa\u7684\u5b58\u50a8\u5e93\u7f51\u5740\u4e2d\uff0c\u9ed8\u8ba4\u5b89\u88c5\u7684\u662f1.11\u7248\u672c\uff0c\u56e0\u6b64\u6211\u4eec\u9700\u8981\u8fdb\u884c\u4ee5\u4e0b\u4fee\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo tee<\/span> \/etc\/yum.repos.d\/docker.repo <span class=\"o\">&lt;&lt;-<\/span><span class=\"sh\">'<\/span><span class=\"no\">EOF<\/span><span class=\"sh\">'\r\n[dockerrepo]\r\nname=Docker Repository\r\nbaseurl=https:\/\/yum.dockerproject.org\/repo\/testing\/centos\/7\/\r\nenabled=1\r\ngpgcheck=1\r\ngpgkey=https:\/\/yum.dockerproject.org\/gpg\r\n<\/span><span class=\"no\">EOF\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>yum <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> docker-engine\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>systemctl <span class=\"nb\">enable <\/span>docker.service\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>systemctl start docker.service\r\n<\/code><\/pre>\n<p>\u5728CentOS\u4e0a\u5b89\u88c5Docker 1.12\uff0c\u5e76\u8bbe\u7f6e\u4e09\u4e2a\u5b9e\u4f8b\u7684\u4e3b\u673a\u540d\u4e3amanager1\u3001worker1\u548cworker2\u3002\u7136\u540e\uff0c\u8bbe\u7f6e\u5b89\u5168\u7ec4\uff0c\u4ee5\u4fbf\u5b9e\u4f8b\u4e4b\u95f4\u53ef\u4ee5\u8fdb\u884c\u901a\u4fe1\u3002<\/p>\n<h1>\u6559\u7a0b<\/h1>\n<p>\u6211\u6309\u7167\u4ee5\u4e0b\u6559\u7a0b\u4f9d\u6b21\u5c1d\u8bd5\u4e86\u4e00\u4e0b\u3002<\/p>\n<h3>\u521b\u5efaSwarm\u96c6\u7fa4<\/h3>\n<p>\u9996\u5148\u521b\u5efaswarm\u96c6\u7fa4\u3002<br \/>\n\u5728manager1\u4e0a\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker swarm init\r\nSwarm initialized: current node <span class=\"o\">(<\/span>eitfugbeu426sulvjboucdidq<span class=\"o\">)<\/span> is now a manager.\r\n<\/code><\/pre>\n<p>\u5728\u5e2e\u52a9\u6587\u4ef6\u4e2d\u63d0\u5230\uff0c\u5982\u679c\u8981\u6307\u5b9a\u76d1\u542cIP\/\u7aef\u53e3\uff0c\u53ef\u4ee5\u8fd9\u6837\u6307\u5b9a\uff1a<br \/>\n&#8211;listen-addr 10.1.1.1:2377\u3002<br \/>\n\u5982\u679c\u4e0d\u6307\u5b9a\uff0c\u5219\u9ed8\u8ba4\u4e3a0.0.0.0:2377\u3002<\/p>\n<p>\u786e\u4fdd\u81ea\u5df1\u5df2\u7ecf\u4f5c\u4e3a\u8282\u70b9\u6dfb\u52a0\u8fdb\u6765\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker node <span class=\"nb\">ls\r\n<\/span>ID                           NAME      MEMBERSHIP  STATUS  AVAILABILITY  MANAGER STATUS\r\neitfugbeu426sulvjboucdidq <span class=\"k\">*<\/span>  manager1  Accepted    Ready   Active        Leader\r\n<\/code><\/pre>\n<h3>\u5411Swarm\u6dfb\u52a0\u8282\u70b9<\/h3>\n<p>\u5de5\u4eba1\u548c\u5de5\u4eba2\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u5e76\u52a0\u5165\u5230swarm\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker swarm <span class=\"nb\">join<\/span> <span class=\"o\">(<\/span>manager\u306eIP<span class=\"o\">)<\/span>:2377\r\nThis node joined a Swarm as a worker.\r\n<\/code><\/pre>\n<p>\u6211\u5c06\u5728manager1\u4e0a\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u5e76\u786e\u8ba4worker1\u548c2\u5df2\u88ab\u6dfb\u52a0\u3002<\/p>\n<pre class=\"post-pre\"><code>docker node <span class=\"nb\">ls\r\n<\/span>ID                           NAME      MEMBERSHIP  STATUS  AVAILABILITY  MANAGER STATUS\r\n43mdhg1wi44him1mglr09dxsh    worker1   Accepted    Ready   Active\r\n8zbsnwbz0qg7e76a637ihj311    worker2   Accepted    Ready   Active\r\neitfugbeu426sulvjboucdidq <span class=\"k\">*<\/span>  manager1  Accepted    Ready   Active        Leader\r\n<\/code><\/pre>\n<h3>Swarm\u306b\u30b5\u30fc\u30d3\u30b9\u3092\u30c7\u30d7\u30ed\u30a4<\/h3>\n<p>\u6211\u4f1a\u5728manager1\u4e0a\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service create <span class=\"nt\">--replicas<\/span> 1 <span class=\"nt\">--name<\/span> helloworld alpine ping docker.com\r\n8oxxbwc3dzgtpuq3de5kkik88\r\n<\/code><\/pre>\n<p>Alpine Linux\u306e\u30b3\u30f3\u30c6\u30ca1\u53f0\u3067 ping docker.com\u3092\u5b9f\u884c\u3059\u308b\u3068\u610f\u5473\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u786e\u8ba4\u670d\u52a1\u6b63\u5728\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service <span class=\"nb\">ls\r\n<\/span>ID            NAME        REPLICAS  IMAGE   COMMAND\r\n8oxxbwc3dzgt  helloworld  1\/1       alpine  ping docker.com\r\n<\/code><\/pre>\n<h3>\u670d\u52a1\u68c0\u67e5<\/h3>\n<p>\u4e0b\u8a18\u306e\u3088\u3046\u306a\u30b3\u30de\u30f3\u30c9\u3067\u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u614b\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service inspect <span class=\"nt\">--pretty<\/span> helloworld\r\nID:     8oxxbwc3dzgtpuq3de5kkik88\r\nName:       helloworld\r\nMode:       Replicated\r\n Replicas:  1\r\nPlacement:\r\n Strategy:  Spread\r\nUpdateConfig:\r\n Parallelism:   0\r\nContainerSpec:\r\n Image:     alpine\r\n Args:      ping docker.com\r\nResources:\r\nReservations:\r\nLimits:\r\n<\/code><\/pre>\n<p>&#8211;pretty\u3092\u7701\u7565\u3059\u308b\u3068json\u5f62\u5f0f\u3067\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service inspect helloworld\r\n<span class=\"o\">[<\/span>\r\n    <span class=\"o\">{<\/span>\r\n        <span class=\"s2\">\"ID\"<\/span>: <span class=\"s2\">\"8oxxbwc3dzgtpuq3de5kkik88\"<\/span>,\r\n        <span class=\"s2\">\"Version\"<\/span>: <span class=\"o\">{<\/span>\r\n            <span class=\"s2\">\"Index\"<\/span>: 22\r\n        <span class=\"o\">}<\/span>,\r\n        <span class=\"s2\">\"CreatedAt\"<\/span>: <span class=\"s2\">\"2016-06-27T15:22:14.396375971Z\"<\/span>,\r\n        <span class=\"s2\">\"UpdatedAt\"<\/span>: <span class=\"s2\">\"2016-06-27T15:22:14.396375971Z\"<\/span>,\r\n        <span class=\"s2\">\"Spec\"<\/span>: <span class=\"o\">{<\/span>\r\n            <span class=\"s2\">\"Name\"<\/span>: <span class=\"s2\">\"helloworld\"<\/span>,\r\n            <span class=\"s2\">\"TaskTemplate\"<\/span>: <span class=\"o\">{<\/span>\r\n                <span class=\"s2\">\"ContainerSpec\"<\/span>: <span class=\"o\">{<\/span>\r\n                    <span class=\"s2\">\"Image\"<\/span>: <span class=\"s2\">\"alpine\"<\/span>,\r\n                    <span class=\"s2\">\"Args\"<\/span>: <span class=\"o\">[<\/span>\r\n                        <span class=\"s2\">\"ping\"<\/span>,\r\n                        <span class=\"s2\">\"docker.com\"<\/span>\r\n                    <span class=\"o\">]<\/span>\r\n                <span class=\"o\">}<\/span>,\r\n                <span class=\"s2\">\"Resources\"<\/span>: <span class=\"o\">{<\/span>\r\n                    <span class=\"s2\">\"Limits\"<\/span>: <span class=\"o\">{}<\/span>,\r\n                    <span class=\"s2\">\"Reservations\"<\/span>: <span class=\"o\">{}<\/span>\r\n                <span class=\"o\">}<\/span>,\r\n                <span class=\"s2\">\"RestartPolicy\"<\/span>: <span class=\"o\">{<\/span>\r\n                    <span class=\"s2\">\"Condition\"<\/span>: <span class=\"s2\">\"any\"<\/span>,\r\n                    <span class=\"s2\">\"MaxAttempts\"<\/span>: 0\r\n                <span class=\"o\">}<\/span>,\r\n                <span class=\"s2\">\"Placement\"<\/span>: <span class=\"o\">{}<\/span>\r\n            <span class=\"o\">}<\/span>,\r\n            <span class=\"s2\">\"Mode\"<\/span>: <span class=\"o\">{<\/span>\r\n                <span class=\"s2\">\"Replicated\"<\/span>: <span class=\"o\">{<\/span>\r\n                    <span class=\"s2\">\"Replicas\"<\/span>: 1\r\n                <span class=\"o\">}<\/span>\r\n            <span class=\"o\">}<\/span>,\r\n            <span class=\"s2\">\"UpdateConfig\"<\/span>: <span class=\"o\">{}<\/span>,\r\n            <span class=\"s2\">\"EndpointSpec\"<\/span>: <span class=\"o\">{<\/span>\r\n                <span class=\"s2\">\"Mode\"<\/span>: <span class=\"s2\">\"vip\"<\/span>\r\n            <span class=\"o\">}<\/span>\r\n        <span class=\"o\">}<\/span>,\r\n        <span class=\"s2\">\"Endpoint\"<\/span>: <span class=\"o\">{<\/span>\r\n            <span class=\"s2\">\"Spec\"<\/span>: <span class=\"o\">{}<\/span>\r\n        <span class=\"o\">}<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">]<\/span>\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u5bb9\u5668\u6b63\u5728\u54ea\u4e2a\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker service tasks helloworld\r\nID                         NAME          SERVICE     IMAGE   LAST STATE         DESIRED STATE  NODE\r\n4hf91p8moi7gdvwx22c917gsf  helloworld.1  helloworld  alpine  Running 6 minutes  Running        manager1\r\n<\/code><\/pre>\n<p>\u5728\u6b63\u5728\u8fd0\u884c\u7684\u8282\u70b9\u4e0a\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u4ee5\u67e5\u770b\u5bb9\u5668\u7684\u8be6\u7ec6\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker ps\r\nCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES\r\na3fc9cf7c874        alpine:latest       <span class=\"s2\">\"ping docker.com\"<\/span>   7 minutes ago       Up 7 minutes                            helloworld.1.4hf91p8moi7gdvwx22c917gsf\r\n<\/code><\/pre>\n<h3>\u670d\u52a1\u89c4\u6a21<\/h3>\n<p>\u5c06helloworld\u6269\u5c55\u5230\u4e94\u4e2a\u7248\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service scale <span class=\"nv\">helloworld<\/span><span class=\"o\">=<\/span>5\r\nhelloworld scaled to 5\r\n<\/code><\/pre>\n<p>\u786e\u8ba4<\/p>\n<pre class=\"post-pre\"><code>docker service tasks helloworld\r\nID                         NAME          SERVICE     IMAGE   LAST STATE          DESIRED STATE  NODE\r\n4hf91p8moi7gdvwx22c917gsf  helloworld.1  helloworld  alpine  Running 9 minutes   Running        manager1\r\n4tarsvkte3of71o7755yclvlv  helloworld.2  helloworld  alpine  Running 42 seconds  Running        worker1\r\nbjzw5mhnb1lwga1ycecfetfv2  helloworld.3  helloworld  alpine  Running 42 seconds  Running        worker2\r\n2ip9tit3pupoj8fyjlw5y4t03  helloworld.4  helloworld  alpine  Running 42 seconds  Running        worker2\r\n0zfhyhrqk114cj11xguvsrzvz  helloworld.5  helloworld  alpine  Running 42 seconds  Running        manager1\r\n<\/code><\/pre>\n<p>\u5206\u5e03\u57283\u4e2a\u8282\u70b9\u4e0a\u3002<\/p>\n<h3>\u5220\u9664\u670d\u52a1<\/h3>\n<p>\u5220\u9664helloworld\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker service <span class=\"nb\">rm <\/span>helloworld\r\nhelloworld\r\n<\/code><\/pre>\n<p>\u786e\u8ba4<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker service inspect helloworld\r\n<span class=\"o\">[]<\/span>\r\nError: no such service: helloworld\r\n<\/code><\/pre>\n<h3>\u6eda\u52a8\u66f4\u65b0<\/h3>\n<p>\u5728Redis\u5bb9\u5668\u7248\u672c3.0.6\u4e0a\u521b\u5efa\u4e00\u4e2a\u670d\u52a1\uff0c\u7136\u540e\u8fdb\u884cRolling Update\u5347\u7ea7\u52303.0.7\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service create <span class=\"nt\">--replicas<\/span> 5 <span class=\"nt\">--name<\/span> redis <span class=\"nt\">--update-delay<\/span> 10s <span class=\"nt\">--update-parallelism<\/span> 1 redis:3.0.6\r\n236f4wpbfv07ocl1kebe4wh1j\r\n<\/code><\/pre>\n<p>\u6211\u6b63\u5728\u521b\u5efa5\u4e2aRedis 3.0.6\u5bb9\u5668\uff0c\u5e76\u5c06\u66f4\u65b0\u95f4\u9694\u8bbe\u7f6e\u4e3a10\u79d2\uff0c\u540c\u65f6\u5c06\u540c\u65f6\u66f4\u65b0\u6570\u8bbe\u7f6e\u4e3a1\u3002<\/p>\n<p>\u786e\u8ba4<\/p>\n<pre class=\"post-pre\"><code>docker service inspect redis <span class=\"nt\">--pretty<\/span>\r\nID:     236f4wpbfv07ocl1kebe4wh1j\r\nName:       redis\r\nMode:       Replicated\r\n Replicas:  5\r\nPlacement:\r\n Strategy:  Spread\r\nUpdateConfig:\r\n Parallelism:   1\r\n Delay:     10s\r\nContainerSpec:\r\n Image:     redis:3.0.6\r\nResources:\r\nReservations:\r\nLimits:\r\n<\/code><\/pre>\n<p>\u6267\u884c3.0.7\u7248\u672c\u7684\u66f4\u65b0\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service update <span class=\"nt\">--image<\/span> redis:3.0.7 redis\r\nredis\r\n<\/code><\/pre>\n<p>\u786e\u8ba4<\/p>\n<pre class=\"post-pre\"><code>docker service inspect --pretty redis\r\nID:     236f4wpbfv07ocl1kebe4wh1j\r\nName:       redis\r\nMode:       Replicated\r\n Replicas:  5\r\nPlacement:\r\n Strategy:  Spread\r\nUpdateConfig:\r\n Parallelism:   1\r\n Delay:     10s\r\nContainerSpec:\r\n Image:     redis:3.0.7\r\nResources:\r\nReservations:\r\nLimits:\r\n<\/code><\/pre>\n<p>\u4f1a\u6309\u7167\u987a\u5e8f\u8fdb\u884c\u66f4\u65b0\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker service tasks redis\r\nID                         NAME     SERVICE  IMAGE        LAST STATE            DESIRED STATE  NODE\r\n5hrzferlm1pfo3t18fj8h0ks3  redis.1  redis    redis:3.0.7  Preparing 1 seconds   Running        worker2\r\ncy8xapvck5nj7mi71m5oj09xk  redis.2  redis    redis:3.0.7  Preparing 11 seconds  Running        worker2\r\n4772bv6zlwp2c42botcvph4eg  redis.3  redis    redis:3.0.6  Running 4 minutes     Running        worker1\r\ncdppq5w50jkkp1cdiwbmxf7o2  redis.4  redis    redis:3.0.6  Running 4 minutes     Running        worker1\r\n4j5azfbmkmtjcjdwq3mrcih26  redis.5  redis    redis:3.0.6  Running 4 minutes     Running        manager1\r\n\r\n<span class=\"nv\">$ <\/span>docker service tasks redis\r\nID                         NAME     SERVICE  IMAGE        LAST STATE            DESIRED STATE  NODE\r\n3y2675vxi4vfwtt0za7zfh98w  redis.1  redis    redis:3.0.7  Preparing 12 seconds  Running        manager1\r\ncy8xapvck5nj7mi71m5oj09xk  redis.2  redis    redis:3.0.7  Preparing 27 seconds  Running        worker2\r\n41o9qbw1rdxo0e25c4myl45wy  redis.3  redis    redis:3.0.7  Preparing 2 seconds   Running        worker2\r\ncdppq5w50jkkp1cdiwbmxf7o2  redis.4  redis    redis:3.0.6  Running 4 minutes     Running        worker1\r\n4j5azfbmkmtjcjdwq3mrcih26  redis.5  redis    redis:3.0.6  Running 4 minutes     Running        manager1\r\n\r\n<span class=\"nv\">$ <\/span>docker service tasks redis\r\nID                         NAME     SERVICE  IMAGE        LAST STATE            DESIRED STATE  NODE\r\n3y2675vxi4vfwtt0za7zfh98w  redis.1  redis    redis:3.0.7  Preparing 35 seconds  Running        manager1\r\ncy8xapvck5nj7mi71m5oj09xk  redis.2  redis    redis:3.0.7  Running 50 seconds    Running        worker2\r\n4ab0mvl9vyhund6d7p6r5lunz  redis.3  redis    redis:3.0.7  Preparing 18 seconds  Running        worker1\r\ncdppq5w50jkkp1cdiwbmxf7o2  redis.4  redis    redis:3.0.6  Running 5 minutes     Running        worker1\r\n2mhtbzsjvful0kit3i4j7qnkl  redis.5  redis    redis:3.0.7  Ready 8 seconds       Running        worker2\r\n\r\n<span class=\"nv\">$ <\/span>docker service tasks redis\r\nID                         NAME     SERVICE  IMAGE        LAST STATE              DESIRED STATE  NODE\r\n3y2675vxi4vfwtt0za7zfh98w  redis.1  redis    redis:3.0.7  Running 50 seconds      Running        manager1\r\ncy8xapvck5nj7mi71m5oj09xk  redis.2  redis    redis:3.0.7  Running About a minute  Running        worker2\r\n4ab0mvl9vyhund6d7p6r5lunz  redis.3  redis    redis:3.0.7  Running 33 seconds      Running        worker1\r\n8wr4sactu87ag9cuiojdt7eys  redis.4  redis    redis:3.0.7  Running 4 seconds       Running        manager1\r\n2mhtbzsjvful0kit3i4j7qnkl  redis.5  redis    redis:3.0.7  Running 24 seconds      Running        worker2\r\n<\/code><\/pre>\n<h3>\u6392\u9664\u8282\u70b9<\/h3>\n<p>\u5982\u679c\u9700\u8981\u5728\u7ef4\u62a4\u7b49\u60c5\u51b5\u4e0b\u6392\u9664\u8282\u70b9\uff0c\u5219\u6267\u884c\u4ee5\u4e0b\u6392\u7a7a\u547d\u4ee4\u3002<\/p>\n<p>\u8bf7\u786e\u4fdd\u5bb9\u5668\u5df2\u5206\u5e03\u57283\u4e2a\u8282\u70b9\u4e0a\u3002<\/p>\n<pre class=\"post-pre\"><code>docker service tasks redis\r\nID                         NAME     SERVICE  IMAGE        LAST STATE         DESIRED STATE  NODE\r\n3y2675vxi4vfwtt0za7zfh98w  redis.1  redis    redis:3.0.7  Running 6 minutes  Running        manager1\r\ncy8xapvck5nj7mi71m5oj09xk  redis.2  redis    redis:3.0.7  Running 7 minutes  Running        worker2\r\n4ab0mvl9vyhund6d7p6r5lunz  redis.3  redis    redis:3.0.7  Running 6 minutes  Running        worker1\r\n8wr4sactu87ag9cuiojdt7eys  redis.4  redis    redis:3.0.7  Running 6 minutes  Running        manager1\r\n2mhtbzsjvful0kit3i4j7qnkl  redis.5  redis    redis:3.0.7  Running 6 minutes  Running        worker2\r\n<\/code><\/pre>\n<p>\u6392\u9664\u5de5\u4eba1\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker node update <span class=\"nt\">--availability<\/span> drain worker1\r\nworker1\r\n<\/code><\/pre>\n<p>\u5de5\u4eba1\u7684\u53ef\u7528\u6027\u5df2\u7ecf\u53d8\u6210\u4e86\u201c\u8017\u5c3d\u201d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker node inspect <span class=\"nt\">--pretty<\/span> worker1\r\nID:         43mdhg1wi44him1mglr09dxsh\r\nHostname:       worker1\r\nStatus:\r\n State:         Ready\r\n Availability:      Drain\r\nPlatform:\r\n Operating System:  linux\r\n Architecture:      x86_64\r\nResources:\r\n CPUs:          1\r\n Memory:        991.7 MiB\r\nPlugins:\r\n  Network:      overlay, overlay, null, host, bridge\r\n  Volume:       <span class=\"nb\">local\r\n<\/span>Engine Version:     1.12.0-rc2\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u5176\u4ed6\u4e24\u53f0\u662f\u5206\u6563\u5728worker1\u4e4b\u5916\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker service tasks redis\r\nID                         NAME     SERVICE  IMAGE        LAST STATE          DESIRED STATE  NODE\r\n3y2675vxi4vfwtt0za7zfh98w  redis.1  redis    redis:3.0.7  Running 9 minutes   Running        manager1\r\ncy8xapvck5nj7mi71m5oj09xk  redis.2  redis    redis:3.0.7  Running 9 minutes   Running        worker2\r\n8ilsqn1cidmmtrl7qyrcuyq0u  redis.3  redis    redis:3.0.7  Running 10 seconds  Running        manager1\r\n8wr4sactu87ag9cuiojdt7eys  redis.4  redis    redis:3.0.7  Running 8 minutes   Running        manager1\r\n2mhtbzsjvful0kit3i4j7qnkl  redis.5  redis    redis:3.0.7  Running 8 minutes   Running        worker2\r\n<\/code><\/pre>\n<p>\u5c06worker1\u91cd\u65b0\u6fc0\u6d3b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$docker<\/span> node update <span class=\"nt\">--availability<\/span> active worker1\r\nworker1\r\n<\/code><\/pre>\n<p>\u53ef\u7528\u6027\u5df2\u6fc0\u6d3b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker node inspect <span class=\"nt\">--pretty<\/span> worker1\r\nID:         43mdhg1wi44him1mglr09dxsh\r\nHostname:       worker1\r\nStatus:\r\n State:         Ready\r\n Availability:      Active\r\nPlatform:\r\n Operating System:  linux\r\n Architecture:      x86_64\r\nResources:\r\n CPUs:          1\r\n Memory:        991.7 MiB\r\nPlugins:\r\n  Network:      overlay, overlay, null, host, bridge\r\n  Volume:       <span class=\"nb\">local\r\n<\/span>Engine Version:     1.12.0-rc2\r\n<\/code><\/pre>\n<h1>\u603b\u7ed3<\/h1>\n<p>\u4f7f\u7528\u57281.12\u7248\u672c\u4e2d\u96c6\u6210\u7684swarm\uff0c\u53ef\u4ee5\u975e\u5e38\u8f7b\u677e\u5730\u5efa\u7acb\u96c6\u7fa4\u73af\u5883\u3002<br \/>\n\u6211\u8fd8\u6253\u7b97\u5c1d\u8bd5\u5176\u4ed6\u529f\u80fd\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u662fCloudpack\u5927\u962a\u7684\u4f50\u3005\u6728\u3002 \u6211\u6253\u7b97\u8bd5\u7528\u4e00\u4e0b\u70ed\u95e8\u8bdd\u9898Docker 1.12\u3002 \u9996\u5148\uff0c\u6211\u60f3\u8bd5\u8bd5\u88ab\u8ba4\u4e3a\u662f\u6700 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-33702","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>\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm - 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\/\u5c1d\u8bd5\u4f7f\u7528-docker1-12-\u7684-swarm\u3002-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm\" \/>\n<meta property=\"og:description\" content=\"\u6211\u662fCloudpack\u5927\u962a\u7684\u4f50\u3005\u6728\u3002 \u6211\u6253\u7b97\u8bd5\u7528\u4e00\u4e0b\u70ed\u95e8\u8bdd\u9898Docker 1.12\u3002 \u9996\u5148\uff0c\u6211\u60f3\u8bd5\u8bd5\u88ab\u8ba4\u4e3a\u662f\u6700 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u4f7f\u7528-docker1-12-\u7684-swarm\u3002-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-20T01:07:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T23:17:25+00:00\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \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%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/\",\"name\":\"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-20T01:07:00+00:00\",\"dateModified\":\"2024-04-28T23:17:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm\"}]},{\"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm - 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\/\u5c1d\u8bd5\u4f7f\u7528-docker1-12-\u7684-swarm\u3002-2\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm","og_description":"\u6211\u662fCloudpack\u5927\u962a\u7684\u4f50\u3005\u6728\u3002 \u6211\u6253\u7b97\u8bd5\u7528\u4e00\u4e0b\u70ed\u95e8\u8bdd\u9898Docker 1.12\u3002 \u9996\u5148\uff0c\u6211\u60f3\u8bd5\u8bd5\u88ab\u8ba4\u4e3a\u662f\u6700 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u4f7f\u7528-docker1-12-\u7684-swarm\u3002-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-20T01:07:00+00:00","article_modified_time":"2024-04-28T23:17:25+00:00","author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/","name":"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-20T01:07:00+00:00","dateModified":"2024-04-28T23:17:25+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5c1d\u8bd5\u4f7f\u7528 Docker1.12 \u7684 Swarm"}]},{"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e4%bd%bf%e7%94%a8-docker1-12-%e7%9a%84-swarm%e3%80%82-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33702","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=33702"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33702\/revisions"}],"predecessor-version":[{"id":83830,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/33702\/revisions\/83830"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=33702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=33702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=33702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}