「码呗学院」聊一聊互联网公司Docker容器化是如何实践的?( 六 )
每一个环境对应的目录下,都是一个marathon的配置文件模板,之所以是模板,因为每次构建生成不同的镜像tag是系统自动生成的,会动态替换参数,并且调用marathon的api接口进行服务更新,服务的更新策略也都配置在marathon配置文件中的,整个的构建和发布流程,分为各自独立的两模块,通过一套shell完成,也可以独立使用,但还是为了考虑操作的简单性,接入了jenkins,并且通过jenkins增强了权限控制,并且对操作记录可追踪。构建流程结构如下图:
运行
一开始我们采用docker,只是拿了部分服务测试,并非一蹴而就,全部直接推广使用。项目测试运行刚上线,开始遇到第一个问题。写到这里,简单普及一下docker的网络模式,docker的网络模式默认的四种方式host,bridge,none和自定义的网络模式,host的方式就是容器和主机共享网络空间,容器和主机共用网络端口,这种方式的弊端不言而喻,就是部署应用的时候要关注服务器的端口分配。bridge的方式是采用的独立的网络空间,通过虚拟网桥的方式利用主机的网卡进行通信,容器的网络空间是独立的,容器内部服务端口和主机映射端口是随机的。none的形式就是关闭网络模式,这种适合于计算的服务类型。而自定义的网络模式,主要是来解决跨主机网络通信的问题,每个容器网络空间也是各自独立的,而我们的服务主要采用的就是种方式,问题也恰恰出在这里。
推荐阅读
- 金铲铲之战|金铲铲之战新赛季最强阵容:学院名流永恩,低分段玩家谨慎使用
- |《哈利波特: 魔法觉醒》学院活动保护南瓜攻略详解教程
- 阴阳师|《金铲铲之战:双城传说》号称最强羁绊的“战斗学院”你值得拥有!
- 战争学院|金铲铲双城新赛季冲分密码,万盾塔里克玩法,兄弟们拿去上分吧!
- 霍格沃茨魔法学院|原神式小将有什么用 原神式小将获取方法
- 推理学院|圣枪哥、sofm有多抠?姿态:我手机成了电子点菜单,到饭点就给他们
- 伐木工|《明日之后》萌新学院:末世优秀伐木工都是怎么炼成的?
- 猎魔人|《巫师3》粉丝们正在争论哪所猎魔人学院最好
- 粉色|国外画师自制格温皮肤!还是战斗学院系列!粉色系超有爱!
- 超神学院|《超神学院》同步更新