博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
外部世界如何访问容器? - 每天5分钟玩转 Docker 容器技术(37)
阅读量:6348 次
发布时间:2019-06-22

本文共 677 字,大约阅读时间需要 2 分钟。

上节我们学习了容器如何访问外部网络,今天讨论另一个方向:外部网络如何访问到容器?

答案是:端口映射

docker 可将容器对外提供服务的端口映射到 host 的某个端口,外网通过该端口访问容器。容器启动时通过-p参数映射端口:

容器启动后,可通过 docker ps 或者 docker port 查看到 host 映射的端口。在上面的例子中,httpd 容器的 80 端口被映射到 host 32773 上,这样就可以通过 <host ip>:<32773> 访问容器的 web 服务了。

183.png

除了映射动态端口,也可在 -p 中指定映射到 host 某个特定端口,例如可将 80 端口映射到 host 的 8080 端口:

每一个映射的端口,host 都会启动一个 docker-proxy 进程来处理访问容器的流量:

以 0.0.0.0:32773->80/tcp 为例分析整个过程:

  1. docker-proxy 监听 host 的 32773 端口。

  2. 当 curl 访问 10.0.2.15:32773 时,docker-proxy 转发给容器 172.17.0.2:80。

  3. httpd 容器响应请求并返回结果。

本章小结

在这一章我们首先学习了 Docker 的三种网络:none, host 和 bridge 并讨论了它们的不同使用场景;然后我们实践了创建自定义网络;最后详细讨论了如何实现容器与容器之间,容器与外部网络之间的通信。

本章重点关注的是单个主机内的容器网络,对于跨主机网络通信将在后面章节详细讨论。下一节开始学习 Docker 存储。

二维码+指纹.png

转载地址:http://cbvla.baihongyu.com/

你可能感兴趣的文章
世界经济论坛发布关于区块链网络安全的报告
查看>>
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>
Ubuntu 16.04安装Nginx
查看>>
从 JS 编译原理到作用域(链)及闭包
查看>>
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
每周记录(三)
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>
linux ssh tunnel使用
查看>>
十、详解FFplay音视频同步
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
小猿圈Python教程之全面解析@property的使用
查看>>
mpvue开发小程序所遇问题及h5转化方案
查看>>
View和Activity的生命周期
查看>>
解决PHP下载大文件失败,并限制下载速度
查看>>
java B2B2C Springcloud电子商城系统—Feign实例
查看>>