前面已经学习了如何部署Service吗,也验证了swarm的failover特性,下面我们要学习的是如何访问Service。
 
下面我们删除之前的Service,重新部署一个Service
 
内部访问Service
 
root@host03:~# docker service  rm web_server    #    删除之前的Service web_server
web_server
root@host03:~# docker service create --name web_server --replicas=2 httpd    #    创建新的Service,并设置副本数为2
1hgm1w94dvuxlbsen9lmsefvz
overall progress: 2 out of 2 tasks
1/2: running   [==================================================>]
2/2: running   [==================================================>]
verify: Service converged
root@host03:~# docker service ps web_server    #    查看新建Service 容器分布情况
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
s4o9mtd8xvqe        web_server.1        httpd:latest        host01              Running             Running 12 seconds ago                       
kq66bz6omujf        web_server.2        httpd:latest        host02              Running             Running 12 seconds ago
root@host01:~# docker inspect web_server.1.s4o9mtd8xvqe8yqcnbyuom26f | jq .[0].NetworkSettings    #    查看某容器内部IP地址
{
  "Bridge": "",
  "SandboxID": "407fde9cdf85507b7e5c635ea3313e41e6ef54da9242837e292526cf0398000d",
  "HairpinMode": false,
  "LinkLocalIPv6Address": "",
  "LinkLocalIPv6PrefixLen": 0,
  "Ports": {
    "80/tcp": null
  },
  "SandboxKey": "/var/run/docker/netns/407fde9cdf85",
  "SecondaryIPAddresses": null,
  "SecondaryIPv6Addresses": null,
  "EndpointID": "a10f1d6f81f492f8b7911997a0837d499f8bbc733c274c955e479c0fedeec433",
  "Gateway": "172.17.0.1",
  "GlobalIPv6Address": "",
  "GlobalIPv6PrefixLen": 0,
  "IPAddress": "172.17.0.2",
  "IPPrefixLen": 16,
  "IPv6Gateway": "",
  "MacAddress": "02:42:ac:11:00:02",
  "Networks": {
    "bridge": {
      "IPAMConfig": null,
      "Links": null,
      "Aliases": null,
      "NetworkID": "d4b0862f06c8f2f16802b3fe9175743e7afdc2396322ff19e656bebca4d9a940",
      "EndpointID": "a10f1d6f81f492f8b7911997a0837d499f8bbc733c274c955e479c0fedeec433",
      "Gateway": "172.17.0.1",
      "IPAddress": "172.17.0.2",
      "IPPrefixLen": 16,
      "IPv6Gateway": "",
      "GlobalIPv6Address": "",
      "GlobalIPv6PrefixLen": 0,
      "MacAddress": "02:42:ac:11:00:02",
      "DriverOpts": null
    }
  }
}
root@host01:~# curl http://172.17.0.2    #    内部访问验证
<html><body><h1>It works!</h1></body></html>
 
外部访问Service
 
root@host03:~# docker service update --publish-add 8080:80 web_server    #    更新Service配置,添加端口映射,将容器的80端口映射到host的8080端口
web_server
overall progress: 2 out of 2 tasks
1/2: running   [==================================================>]
2/2: running   [==================================================>]
verify: Service converged
root@host03:~# curl http://10.12.31.211:8080    #    访问 host01 IP 验证外部访问
<html><body><h1>It works!</h1></body></html>
root@host03:~# curl http://10.12.31.212:8080    #    访问 host02 IP 验证外部访问
<html><body><h1>It works!</h1></body></html>
root@host03:~# curl http://10.12.31.213:8080    #    访问 host03 IP 验证外部访问(host03上没有容器,也可以访问成功,这是swarm的一个特性 routing mesh)
<html><body><h1>It works!</h1></body></html>
 
 

最新文章

  1. 连接Linux下 XAMPP集成环境中部署的禅道的数据库MariaDB
  2. 图解Android触摸事件分发
  3. Tomcat 开发web项目报Illegal access: this web application instance has been stopped already. Could not load [org.apache.commons.pool.impl.CursorableLinkedList$Cursor]. 错误
  4. RewriteRule参数
  5. android实现 服务器功能
  6. Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式
  7. motan源码分析一:服务发布及注册
  8. [置顶] Windows Phone后台音乐详解一
  9. CString的部分实现剖析
  10. 机器学习( Machine Learning)的定义
  11. LintCode题解之比较字符串
  12. 关于 Be 主
  13. java 随机生成6位短信验证码
  14. 题解-bzoj2554 Color
  15. 7za命令报错Error: xxx is not supported archive
  16. java包的所有类生成class
  17. RobotFrameWork(十三)RobotFramework与loadrunner性能测试结合(基于Remote库)
  18. Hibernate二级缓存 --Hibernate框架
  19. Atitit mybatis 3 3.2 3.3 &#160;3.4 新特性attilax总结
  20. html5 区块与内联div 与span html块级元素

热门文章

  1. TCP-&gt;IP输出 之 ip_queue_xmit、ip_build_and_send_pkt、ip_send_unicast_reply
  2. Redis内存碎片率
  3. Maven-指定要打包的文件
  4. windows10下如何完全卸载串口驱动?
  5. C代码输出日志
  6. awk中begin/end的含义
  7. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
  8. 阶段3 3.SpringMVC&#183;_05.文件上传_5 文件上传之跨服务器上传分析和搭建环境
  9. 【HANA系列】SAP HANA SQL获取字符串长度
  10. 【HANA系列】【第四篇】SAP HANA XS使用服务器JavaScript Libraries详解