如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
来源:互联网 发布:java商场系统 jeshop 编辑:程序博客网 时间:2024/06/06 01:58
前面我们已经学习了如何部署 service,也验证了 swarm 的 failover 特性。不过截止到现在,有一个重要问题还没有涉及:如何访问 service?这就是本节要讨论的问题。
为了便于分析,我们重新部署 web_server。
① docker service rm
删除 web_server,service 的所有副本(容器)都会被删除。
② 重新创建 service,这次直接用 --replicas=2
创建两个副本。
③ 每个 worker node 上运行了一个副本。
好了,现在 service 已经在那里了,我们如何访问呢?
要访问 http 服务,最起码网络得通吧,服务的 IP 我们得知道吧,但这些信息目前我们都不清楚。不过至少我们知道每个副本都是一个运行的容器,要不先看看容器的网络配置吧。
在 swarm-worker1 上运行了一个容器,是 web_server 的一个副本,容器监听了 80
端口,但并没有映射到 Docker Host,所以只能通过容器的 IP 访问。查看一下容器的 IP。
容器 IP 为 172.17.0.2
,实际上连接的是 Docker 默认 bridge
网络。
我们可以直接在 swarm-worker1 上访问容器的 http 服务。
但这样的访问也仅仅是容器层面的访问,服务并没有暴露给外部网络,只能在 Docker 主机上访问。换句话说,当前配置下,我们无法访问 service web_server。
从外部访问 service
要将 service 暴露到外部,方法其实很简单,执行下面的命令:
docker service update --publish-add 8080:80 web_server
如果是新建 service,可以直接用使用 --publish
参数,比如:
docker service create --name web_server --publish 8080:80 --replicas=2 httpd
容器在 80 端口上监听 http 请求,--publish-add 8080:80
将容器的 80 映射到主机的 8080 端口,这样外部网络就能访问到 service 了。
大家可能会奇怪,为什么 curl 集群中任何一个节点的 8080 端口,都能够访问到 web_server?
这实际上就是使用 swarm 的好处了,这个功能叫做 routing mesh,我们下一节重点讨论。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
- 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
- 容器如何访问外部世界?- 每天5分钟玩转 Docker 容器技术(36)
- 如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)
- Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
- 如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)
- 如何实现跨 Docker 主机存储?- 每天5分钟玩转 Docker 容器技术(73)
- Docker 如何支持多种日志方案?- 每天5分钟玩转 Docker 容器技术(88)
- Docker 组件如何协作?- 每天5分钟玩转Docker容器技术(8)
- Docker 组件如何协作?- 每天5分钟玩转Docker容器技术(8)
- Docker 组件如何协作?- 每天5分钟玩转Docker容器技术(8)
- 如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)
- 如何自定义容器网络?- 每天5分钟玩转 Docker 容器技术(33)
- Docker 组件如何协作?- 每天5分钟玩转容器技术(8)
- 如何共享数据?- 每天5分钟玩转 Docker 容器技术(41)
- overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)
- overlay 是如何隔离的?- 每天5分钟玩转 Docker 容器技术(53)
- 如何共享数据?- 每天5分钟玩转 Docker 容器技术(41)
- 如何使用 flannel host-gw backend?- 每天5分钟玩转 Docker 容器技术(62)
- 砸 4 亿重返 Windows ,慕尼黑正式叫停 Linux 计划
- js 事件多次执行
- 《VMware12安装Ubuntu15.04-desktop》
- Tornado2.2.1 for PowerPC安装包下载
- SQL数据库查询LIMIT 数据分页
- 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
- 冒泡排序
- 设计模式之单例模式面试总结
- svm之使用SVM(斯坦福machine learning week 7)
- 参数的传值方式与传地址方式
- 支持原创
- editor does not contain a main type的解决方案
- 28. Queue
- 除了发外链seo人还能干什么