099、如何访问Service (Swarm06)
2024-10-07 02:52:01
前面已经学习了如何部署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>
最新文章
- 连接Linux下 XAMPP集成环境中部署的禅道的数据库MariaDB
- 图解Android触摸事件分发
- Tomcat 开发web项目报Illegal access: this web application instance has been stopped already. Could not load [org.apache.commons.pool.impl.CursorableLinkedList$Cursor]. 错误
- RewriteRule参数
- android实现 服务器功能
- Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式
- motan源码分析一:服务发布及注册
- [置顶] Windows Phone后台音乐详解一
- CString的部分实现剖析
- 机器学习( Machine Learning)的定义
- LintCode题解之比较字符串
- 关于 Be 主
- java 随机生成6位短信验证码
- 题解-bzoj2554 Color
- 7za命令报错Error: xxx is not supported archive
- java包的所有类生成class
- RobotFrameWork(十三)RobotFramework与loadrunner性能测试结合(基于Remote库)
- Hibernate二级缓存 --Hibernate框架
- Atitit mybatis 3 3.2 3.3 &#160;3.4 新特性attilax总结
- html5 区块与内联div 与span html块级元素
热门文章
- TCP->;IP输出 之 ip_queue_xmit、ip_build_and_send_pkt、ip_send_unicast_reply
- Redis内存碎片率
- Maven-指定要打包的文件
- windows10下如何完全卸载串口驱动?
- C代码输出日志
- awk中begin/end的含义
- OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
- 阶段3 3.SpringMVC&#183;_05.文件上传_5 文件上传之跨服务器上传分析和搭建环境
- 【HANA系列】SAP HANA SQL获取字符串长度
- 【HANA系列】【第四篇】SAP HANA XS使用服务器JavaScript Libraries详解