{"id":1407,"date":"2017-05-07T13:00:53","date_gmt":"2017-05-07T05:00:53","guid":{"rendered":"http:\/\/www.xttblog.com\/?p=1407"},"modified":"2021-12-25T14:36:54","modified_gmt":"2021-12-25T06:36:54","slug":"%e9%98%bf%e9%87%8c%e4%ba%91%e5%ae%b9%e5%99%a8%e6%9c%8d%e5%8a%a1docker-%e7%9a%84%e9%83%a8%e7%bd%b2%e3%80%81%e5%90%af%e5%8a%a8%e3%80%81%e5%88%a0%e9%99%a4%e5%ae%9e%e8%b7%b5","status":"publish","type":"post","link":"https:\/\/www.xttblog.com\/?p=1407","title":{"rendered":"\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1Docker \u7684\u90e8\u7f72\u3001\u542f\u52a8\u3001\u5220\u9664\u5b9e\u8df5"},"content":{"rendered":"<p>\u63a5\u524d\u4e24\u7bc7\u300a<a title=\"\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1Docker\u4e0e\u5fae\u670d\u52a1\u5b9e\u6218\" href=\"http:\/\/www.xttblog.com\/?p=1399\" target=\"_blank\" rel=\"noopener noreferrer\" name=\"\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1Docker\u4e0e\u5fae\u670d\u52a1\u5b9e\u6218\">\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1Docker\u4e0e\u5fae\u670d\u52a1\u5b9e\u6218<\/a>\u300b\u3001\u300a<a title=\"\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1\u5b9e\u8df5\u4e4bDocker Compose\" href=\"http:\/\/www.xttblog.com\/?p=1403\" target=\"_blank\" rel=\"noopener noreferrer\" name=\"\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1\u5b9e\u8df5\u4e4bDocker Compose\">\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1\u5b9e\u8df5\u4e4bDocker Compose<\/a>\u300b\u3002\u672c\u7ae0\u5c06\u7740\u91cd\u8bb2\u89e3<a title=\"\u963f\u91cc\u4e91\" href=\"http:\/\/www.aliyun.com\" target=\"_blank\" rel=\"noopener noreferrer\" name=\"\u963f\u91cc\u4e91\">\u963f\u91cc\u4e91<\/a>\u5bb9\u5668\u670d\u52a1<a title=\"Docker\" href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" name=\"Docker\">Docker<\/a>\u7684\u90e8\u7f72\uff0c\u5b89\u88c5\uff0c\u542f\u52a8\u3001\u5220\u9664\u7b49\u5185\u5bb9\u3002<\/p>\n<h2>\u8bbe\u7f6eDocker\u7684Swarm\u6a21\u5f0f<\/h2>\n<p><a title=\"Docker Swarm\" href=\"https:\/\/www.docker.com\/get-docker\" target=\"_blank\" rel=\"noopener noreferrer\" name=\"Docker Swarm\">Docker Swarm<\/a>\u63d0\u4f9b\u4e86\u4e00\u4e2a\u672c\u5730\u96c6\u7fa4\u80fd\u529b\uff0c\u53ef\u4ee5\u5728\u5355\u4e2a\u865a\u62dfDocker\u5f15\u64ce\u4e2d\u8fd0\u884c\u4e00\u7ec4Docker\u5f15\u64ce\u3002<\/p>\n<p><img decoding=\"async\" style=\"width: 1488px;height: 777px\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/xmt1139057136\/xttblog\/2021\/12\/docker.png\" alt=\"Docker\u7684Swarm\u6a21\u5f0f\">\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u6765\u521d\u59cb\u5316Swarm\u6a21\u5f0f\uff1a<\/p>\n<pre class=\"brush:bash;\">docker swarm init<\/pre>\n<p>\u8fd9\u5c06\u542f\u52a8Swarm\u7ba1\u7406\u5668\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u7ba1\u7406\u5668\u9636\u6bb5\u4e5f\u662fworker\u8282\u70b9\uff0c\u800c\u4e14\u53ef\u4ee5\u53ea\u914d\u7f6e\u4e3a\u7ba1\u7406\u5668\u8282\u70b9\u3002&nbsp;<br \/>\n\u8981\u67e5\u770b\u5173\u4e8e\u5355\u8282\u70b9\u96c6\u7fa4\u7684\u4fe1\u606f\uff0c\u53ef\u4ee5\u4f7f\u7528docker info\u547d\u4ee4\uff1a<\/p>\n<pre class=\"brush:bash;\">Containers: 0\n Running: 0\n Paused: 0\n Stopped: 0\nImages: 17\nServer Version: 1.13.0\nStorage Driver: overlay2\n Backing Filesystem: extfs\n Supports d_type: true\n Native Overlay Diff: true\nLogging Driver: json-file\nCgroup Driver: cgroupfs\nPlugins:\n Volume: local\n Network: bridge host ipvlan macvlan null overlay\nSwarm: active\n NodeID: 92mydh0e09ba5hx3wtmcmvktz\n Is Manager: true\n ClusterID: v68ikyaff7rdxpaw1j0c9i60s\n Managers: 1\n Nodes: 1\n Orchestration:\n  Task History Retention Limit: 5\n Raft:\n  Snapshot Interval: 10000\n  Number of Old Snapshots to Retain: 0\n  Heartbeat Tick: 1\n  Election Tick: 3\n Dispatcher:\n  Heartbeat Period: 5 seconds\n CA Configuration:\n  Expiry Duration: 3 months\n Node Address: 192.168.65.2\n Manager Addresses:\n  192.168.65.2:2377\nRuntimes: runc\nDefault Runtime: runc\nInit Binary: docker-init\ncontainerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e\nrunc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e\ninit version: 949e6fa\nSecurity Options:\n seccomp\n  Profile: default\nKernel Version: 4.9.5-moby\nOperating System: Alpine Linux v3.5\nOSType: linux\nArchitecture: x86_64\nCPUs: 4\nTotal Memory: 1.952 GiB\nName: moby\nID: SGCM:KDRD:G3M7:PZHN:J4RL:VFFR:G2SR:EKD5:JV4J:RL3X:LF7T:XF6V\nDocker Root Dir: \/var\/lib\/docker\nDebug Mode (client): false\nDebug Mode (server): true\n File Descriptors: 31\n Goroutines: 124\n System Time: 2017-01-27T08:25:58.032295342Z\n EventsListeners: 1\nNo Proxy: *.local, 169.254\/16\nUsername: chszs\nRegistry: https:\/\/index.docker.io\/v1\/\nExperimental: true\nInsecure Registries:\n 127.0.0.0\/8\nLive Restore Enabled: false<\/pre>\n<p>\u4e0a\u9762\u6240\u8ff0\u7684\u96c6\u7fa4\u53ea\u6709\u4e00\u4e2a\u8282\u70b9\uff0c\u800c\u4e14\u8fd9\u4e2a\u8282\u70b9\u662f\u4e00\u4e2a\u7ba1\u7406\u5668\u8282\u70b9\u3002&nbsp;<br \/>\n\u6b64\u5916\uff0c\u591a\u4e3b\u673a\u96c6\u7fa4\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u65b9\u6cd5\u6765\u8bbe\u7f6e\uff1a <a href=\"https:\/\/github.com\/docker\/labs\/blob\/master\/developer-tools\/java\/chapters\/ch08-aws.adoc\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/docker\/labs\/blob\/master\/developer-tools\/java\/chapters\/ch08-aws.adoc<\/a><\/p>\n<h2>\u90e8\u7f72\u5fae\u670d\u52a1<\/h2>\n<p>\u5fae\u670d\u52a1\u53ef\u4ee5\u8fd9\u6837\u542f\u52a8\uff1a<\/p>\n<pre class=\"brush:bash;\">docker stack deploy --compose-file=docker-compose.yml webapp<\/pre>\n<p>\u8f93\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre class=\"brush:bash;\">Creating network webapp_default\nCreating service webapp_web\nCreating service webapp_db<\/pre>\n<p>WildFly\u548cCouchbase\u670d\u52a1\u5728\u8fd9\u4e2a\u8282\u70b9\u4e0a\u542f\u52a8\u4e86\uff0c\u6bcf\u4e00\u4e2a\u670d\u52a1\u90fd\u6709\u5355\u4e2a\u7684\u5bb9\u5668\u3002\u5982\u679cSwarm\u6a21\u5f0f\u5728\u591a\u4e2a\u8282\u70b9\u4e0a\u542f\u7528\uff0c\u90a3\u4e48\u5bb9\u5668\u4f1a\u5206\u5e03\u5230\u8fd9\u4e9b\u8282\u70b9\u4e0a\u3002&nbsp;<br \/>\n\u8fd9\u6837\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u8986\u76d6\u7f51\u7edc\u3002\u8fd9\u5141\u8bb8\u591a\u4e2a\u5bb9\u5668\u5728\u4e0d\u540c\u7684\u4e3b\u673a\u4e0a\u76f8\u4e92\u901a\u4fe1\u3002&nbsp;<br \/>\n\u53ef\u4ee5\u4f7f\u7528docker service\u6765\u9a8c\u8bc1WildFly\u670d\u52a1\u548cCouchbase\u670d\u52a1\u662f\u5426\u6b63\u5728\u8fd0\u884c\uff1a<\/p>\n<pre class=\"brush:plain;\">ID            NAME        MODE        REPLICAS  IMAGE\na9pkiziw3vgw  webapp_db   replicated  1\/1       chszs\/couchbase:travel\nhr5s6ue54kwj  webapp_web  replicated  1\/1       chszs\/couchbase-javaee:travel<\/pre>\n<p>\u670d\u52a1\u7684\u65e5\u5fd7\u53ef\u4ee5\u4f7f\u7528\u547d\u4ee4docker service logs if webapp_web\u6765\u67e5\u770b\uff1a<\/p>\n<pre class=\"brush:plain;\">webapp_web.1.wby0b04t7bap@moby    | =========================================================================\nwebapp_web.1.wby0b04t7bap@moby    |\nwebapp_web.1.wby0b04t7bap@moby    |   JBoss Bootstrap Environment\nwebapp_web.1.wby0b04t7bap@moby    |\nwebapp_web.1.wby0b04t7bap@moby    |   JBOSS_HOME: \/opt\/jboss\/wildfly\nwebapp_web.1.wby0b04t7bap@moby    |\nwebapp_web.1.wby0b04t7bap@moby    |   JAVA: \/usr\/lib\/jvm\/java\/bin\/java\nwebapp_web.1.wby0b04t7bap@moby    |\nwebapp_web.1.wby0b04t7bap@moby    |   JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true\nwebapp_web.1.wby0b04t7bap@moby    |\nwebapp_web.1.wby0b04t7bap@moby    | =========================================================================\n. . .\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:15,811 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed \"airlines.war\" (runtime-name : \"airlines.war\")\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:16,076 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http:\/\/127.0.0.1:9990\/management\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:16,077 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http:\/\/127.0.0.1:9990\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:16,077 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.1.0.Final (WildFly Cor<\/pre>\n<p>\u8981\u786e\u4fdd\u7b49\u5f85\u6700\u540e\u4e00\u6761\u65e5\u5fd7\u8bed\u53e5\u5b8c\u6210\u663e\u793a\u3002<\/p>\n<h2>\u8bbf\u95ee\u5fae\u670d\u52a1<\/h2>\n<p>\u8bbf\u95ee\u5fae\u670d\u52a1\u7684\u8bb0\u5f55<\/p>\n<pre class=\"brush:bash;\">curl -v http:\/\/localhost:8080\/airlines\/resources\/airline<\/pre>\n<p>\u663e\u793a\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n<pre class=\"brush:plain;\">*   Trying ::1...\n* Connected to localhost (::1) port 8080 (#0)\n&gt; GET \/airlines\/resources\/airline HTTP\/1.1\n&gt; Host: localhost:8080\n&gt; User-Agent: curl\/7.43.0\n&gt; Accept: *\/*\n&gt; \n&lt; HTTP\/1.1 200 OK\n&lt; Connection: keep-alive\n&lt; X-Powered-By: Undertow\/1\n&lt; Server: WildFly\/10\n&lt; Content-Type: application\/octet-stream\n&lt; Content-Length: 1402\n&lt; Date: Fri, 03 Feb 2017 17:02:45 GMT\n&lt; \n* Connection #0 to host localhost left intact\n[{\"travel-sample\":{\"country\":\"United States\",\"iata\":\"Q5\",\"callsign\":\"MILE-AIR\",\"name\":\"40-Mile Air\",\"icao\":\"MLA\",\"id\":10,\"type\":\"airline\"}}]<\/pre>\n<p>Docker for Java Developers\uff1a&nbsp;<a href=\"https:\/\/github.com\/docker\/labs\/tree\/master\/developer-tools\/java\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/docker\/labs\/tree\/master\/developer-tools\/java<\/a><\/p>\n<p>\u4e0a\u9762\u662f\u4e00\u4e2a\u81ea\u5b66\u52a8\u624b\u7684\u5b9e\u9a8c\uff0c\u53ef\u4ee5\u8f7b\u677e\u4e0a\u624b\u4f7f\u7528Docker\u3002&nbsp;<\/p>\n<h2>\u5220\u9664\u5fae\u670d\u52a1<\/h2>\n<p>\u53ef\u4ee5\u4f7f\u7528docker stack rm webapp\u547d\u4ee4\u6765\u79fb\u9664\u5fae\u670d\u52a1\uff1a<\/p>\n<pre class=\"brush:bash;\">Removing service webapp_web\nRemoving service webapp_db\nRemoving network webapp_default<\/pre>\n<h2>\u603b\u7ed3<\/h2>\n<p>\u5c3d\u7ba1\u5728\u963f\u91cc\u4e91\u7684\u4ea7\u54c1\u7cfb\u5217\u4e2d\u8fd8\u6ca1\u770b\u5230Docker\u5bb9\u5668\u670d\u52a1\u4ea7\u54c1\uff0c\u4f46\u8fd9\u5e76\u4e0d\u4ee3\u8868\u5c31\u4e0d\u80fd\u5728\u963f\u91cc\u4e91\u4e0a\u90e8\u7f72\u548c\u5b9e\u65bd\u5bb9\u5668\u7c7b\u7684\u670d\u52a1\u548c\u5e94\u7528\u3002\u5b9e\u9645\u4e0a\uff0c\u963f\u91cc\u4e91\u63d0\u4f9b\u4e86\u4e00\u4e2aDocker\u5e02\u573a\uff0c\u901a\u8fc7\u963f\u91cc\u4e91\u7684Docker\u5e02\u573a\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u65b9\u4fbf\u5730\u8fdb\u884cDocker\u5bb9\u5668\u7684\u521b\u5efa\u3001\u5206\u4eab\u3001\u4e0b\u8f7d\u548c\u8bc4\u4ef7\u3002\u800c\u5bf9\u4e8eDockerhub\u5b98\u65b9\u7684\u955c\u50cf\uff0c\u963f\u91cc\u4e91\u7684Docker\u5e02\u573a\u8fd8\u63d0\u4f9b\u4e86\u955c\u50cf\u52a0\u901f\u670d\u52a1\uff0c\u8ba9\u5f00\u53d1\u8005\u53ef\u4ee5\u66f4\u5feb\u5730\u4e0b\u8f7d\u548c\u4f7f\u7528\u8fd9\u4e9b\u6765\u81ea\u5b98\u65b9\u7684Docker\u955c\u50cf\u3002\u501f\u52a9\u963f\u91cc\u4e91\u865a\u62df\u4e3b\u673a\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u5355\u53f0\u6216\u591a\u53f0\u4e3b\u673a\u4e0a\u642d\u5efa\u548c\u90e8\u7f72\u591a\u4e2aDocker\u5bb9\u5668\uff0c\u6bcf\u4e2aDocker\u5bb9\u5668\u4e0a\u53c8\u90e8\u7f72\u5404\u79cd\u5404\u6837\u7684\u4e1a\u52a1\u670d\u52a1\u3002\u901a\u8fc7\u8fd9\u4e9b\u4e1a\u52a1\u670d\u52a1\uff0c\u6784\u5efa\u6211\u4eec\u7684\u5fae\u670d\u52a1\u751f\u6001\u7cfb\u7edf\u3002<\/p>\n<!-- <audio autoplay=\"autoplay\" height=\"100\" width=\"100\" hidden=\"true\"><source src=\"https:\/\/c.coka.la\/orAvPR.mp3\" type=\"audio\/mp3\"\/><\/audio><img decoding=\"async\" src=\"https:\/\/images.weserv.nl\/?url=https:\/\/ws3.sinaimg.cn\/large\/8fa5dcfcgy1g4em3rzar5j20ib089ae0.jpg\" alt=\"\u4e1a\u4f59\u8349\u516c\u4f17\u53f7\"\/> --><p><!-- <img decoding=\"async\" src=\"https:\/\/raw.githubusercontent.com\/xmt1139057136\/xttblog\/master\/8fa5dcfcgy1g4em3rzar5j20ib089ae0.jpg\" alt=\"\u4e1a\u4f59\u8349\u516c\u4f17\u53f7\"\/>--><img decoding=\"async\" src=\"https:\/\/saas.51autoparts.cn\/api\/admin\/sys-file\/oss\/file?fileName=84db51f8561e448f9a4fda2eff0811f9.jpg\" alt=\"\u4e1a\u4f59\u8349\u516c\u4f17\u53f7\"\/><\/p><p>\u6700\u540e\uff0c\u6b22\u8fce\u5173\u6ce8\u6211\u7684\u4e2a\u4eba\u5fae\u4fe1\u516c\u4f17\u53f7\uff1a\u4e1a\u4f59\u8349\uff08yyucao\uff09\uff01<b>\u53ef\u52a0\u4f5c\u8005\u5fae\u4fe1\u53f7\uff1a<font color=\"red\">xttblog2<\/font>\u3002\u5907\u6ce8\uff1a\u201c1\u201d\uff0c\u6dfb\u52a0\u535a\u4e3b\u5fae\u4fe1\u62c9\u4f60\u8fdb\u5fae\u4fe1\u7fa4\u3002\u5907\u6ce8\u9519\u8bef\u4e0d\u4f1a\u540c\u610f\u597d\u53cb\u7533\u8bf7\u3002<\/b>\u518d\u6b21\u611f\u8c22\u60a8\u7684\u5173\u6ce8\uff01\u540e\u7eed\u6709\u7cbe\u5f69\u5185\u5bb9\u4f1a\u7b2c\u4e00\u65f6\u95f4\u53d1\u7ed9\u60a8\uff01\u539f\u521b\u6587\u7ae0\u6295\u7a3f\u8bf7\u53d1\u9001\u81f3532009913@qq.com\u90ae\u7bb1\u3002\u5546\u52a1\u5408\u4f5c\u4e5f\u53ef\u6dfb\u52a0\u4f5c\u8005\u5fae\u4fe1\u8fdb\u884c\u8054\u7cfb\uff01<\/p><p>\u672c\u6587\u539f\u6587\u51fa\u5904\uff1a<a href=\"https:\/\/www.xttblog.com\">\u4e1a\u4f59\u8349<\/a>\uff1a &raquo; <a href=\"https:\/\/www.xttblog.com\/?p=1407\">\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1Docker \u7684\u90e8\u7f72\u3001\u542f\u52a8\u3001\u5220\u9664\u5b9e\u8df5<\/a><\/p><!-- <div class=\"bd-reward-stl\"><button id=\"bdRewardBtn\"><span><\/span><\/button><\/div> -->","protected":false},"excerpt":{"rendered":"<p>\u63a5\u524d\u4e24\u7bc7\u300a\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1Docker\u4e0e\u5fae\u670d\u52a1\u5b9e\u6218\u300b\u3001\u300a\u963f\u91cc\u4e91\u5bb9\u5668\u670d\u52a1\u5b9e\u8df5\u4e4bDocker Compose\u300b\u3002\u672c\u7ae0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[512,1137,1134,581,25],"class_list":["post-1407","post","type-post","status-publish","format-standard","hentry","category-java","tag-docker","tag-docker-swarm","tag-1134","tag-581","tag-25"],"_links":{"self":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts\/1407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1407"}],"version-history":[{"count":3,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts\/1407\/revisions"}],"predecessor-version":[{"id":5310,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=\/wp\/v2\/posts\/1407\/revisions\/5310"}],"wp:attachment":[{"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xttblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}