容器霸业:5 比武大会

武道会

天下第一容器武道会即将召开,作为初入容器功法的门派,掌门希望选派优秀的弟子前去参会。掌门和几位长老商议后,决定派遣大师兄和三位优秀的弟子前往。

众弟子听闻,纷纷自荐要求前往。掌门见大家如此积极,甚是欣慰,但是名额有限,所以决定举办门派内部的容器功法比试,选出最优秀的三名弟子。

小刀也是心潮澎湃,非常想去,但是想到自己资历太浅,恐怕连内部比试登台的机会都没有。

这天,小刀仍旧像往常一样早起练功。大师兄和陆师兄一道路过,小刀赶紧收功问好,大师兄问道:“小刀,早啊!又在勤奋苦练了啊,是在准备比试吗?”

“嗯~哦,没,没有,大师兄,我的功力太浅,没有报名。”小刀支支吾吾地说。

“嗯?为什么不报名试试呢?”大师兄问道。

“小刀这样做还是对的,比试没有什么胜算,还是专心练功,争取下次再去。”陆师兄说到。

大师兄迟疑了一会,说到,“这次机会难得,不过门派内部确实竞争激烈。”

“可不是嘛!你知道吗?”陆师兄忿忿地说到,“就连刚来的几个弟子都争着报名了,不知道他们能有什么资格!”

“掌门的意思,大家都有机会嘛。”大师兄说到。

小刀一直默默地站在原地,不敢搭话,目送两位师兄走远。

“诶~还是专心练功吧!”小刀心想,“我也是刚来没多久,肯定是轮不上我的。”

上吧,小刀

“小刀,大师兄找你!”小胖冲进来就喊,“在干嘛呢?”

小刀一脸诧异的看着气喘吁吁的小胖,这小胖是和他一起入门的弟子,平时憨憨的,刚入门的时候两人就互相帮助,因此关系最好。

“还在磨叽啥啊?快,大师兄刚找你呢!”小胖边说边拉着小刀就往外走。

“大师兄找我干啥呀?”小刀很疑惑。

“我哪知道,刚开完会就说要找你。”小胖嘿嘿一笑,“你小子的鸿运要来了呗!”

大师兄见小胖和小刀走来,放下手中的书稿,起身说到:“小刀,小胖,来的正好,我有话要说。”

小刀和小胖赶紧作揖。来的路上,小刀就感觉有些心慌,“大师兄为什么突然找我,难道是我做错了什么?”

“门派比试你们都知道吧,掌门的意思是人人都可参与。小刀,你不是对容器功法很有兴趣么,我看你可没报名啊?”大师兄问道。

“我才疏学浅,就不去给大家添乱了。”小刀回道。

“怎么能说添乱?你不要听那些人瞎说。”大师兄说到,“掌门还问我,新来的弟子中,可有潜力不错的?”

大师兄停顿了一会,继续说到,“我当时想到的就是你啊,小刀。”

“啊!?感谢大师兄厚爱。”小刀有点受宠若惊。

“诶,你的努力大家都看到的。”大师兄说到,“其实掌门也是有意培养新人,我觉得你可以报名一试,没选上也不丢人,也可以在大家面前展示一下。”

“这......”小刀还是有些迟疑。

“好了,去报个名吧,不要让我失望,我很看好你。”说罢,大师兄就转身离开了。

“兄弟,我说你的鸿运来了吧!”小胖见大师兄走远,手肘一推小刀。

“我还有点懵~”小刀看着小胖,他也不知道自己为什么会被大师兄看好。

“还想什么,赶紧去报名吧!上吧,小刀!”说着,小胖又拉上小刀就走,“就我这水平,也报名陪你,你看,够意思吧!”

内部比试

门派内部比试大会,掌门和几位长老坐在比武台中央,众多参赛的弟子在比武台两边紧张的准备着,整个比武台被围观的弟子围的水泄不通。

小刀也非常紧张,在场边不断地走来走去。

“别走了!”小胖不耐烦地说,“太晃眼了,能不能坐下来。”

“嗯~行吧。”小刀坐了下来,却仍旧如坐针毡。

“首先上场的是我们的黄师兄!”主持人掷地有声的说到,“黄师兄可是门派的老油条~啊,不,是老人了,跟着掌门也是经历了大大小小数十战役,功不可没啊。下面有请~黄师兄登场!”

“哈哈!主持人可真幽默。不过当初我跟掌门,那是什么刀山火海没去过。不说了,不说了,来,看!先来个 Nginx 容器给大家看看。”黄师兄说着,起势运功,一个容器出现在左手。

“嗯,把数据库、后端 API、前端 Nginx 都上了吧。”掌门出题了。

“好嘞!”黄师兄心想,“这也太简单了!”说罢,左手收起容器,“看我运功!”一阵哼哼哈嘿之后,又一个全新的容器出现在黄师兄的左手。

“这个就是全新的包含数据库、后端 API 和前端 Nginx 的容器。”黄师兄得意的说道。

“现在后端 API 更新了,该如何操作呢?”一位白胡子的长老问道。

“这个容易,看我再来一次!”说罢,黄师兄又收容器,继续运功。

只见白胡子的长老摇了摇头,小胖问小刀:“诶,怎么感觉不是很满意啊,你说,黄师兄做的有什么破绽吗?”

“黄师兄的这种容器,俗话叫做「胖容器」。”小刀小声说道,“所有的服务都在一个容器中,这样的容器就很「胖」。每个服务的修改必须要全部重来一次,一个服务挂掉,整个容器就可能废掉,负担很大,违背了容器轻量的初衷。”

“啊?这样啊,那应该怎么搞?”小胖问道。

“容器就应该轻量化,理论上就应该是一个进程。”小刀说道,“嘘,小声点,你看,陆师兄上场了。”

“掌门,各位长老,各位师兄弟,大家好!”陆师兄自信满满的说,“陆某这就开始了!”

说罢,陆师兄双手运功,汇聚真气于左手,一个数据库容器出现在了左手掌心。然后汇聚真气于右手,一个后端 API 容器出现在了右手。接着,双手合,一个前端容器出现在双手之间。

docker run -d --name db --publish 3306:3306 mysql
docker run -d --name backend --publish 8080:8080 --link db backend
docker run -d --name frontend --publish 80:80 --link backend frontend

“好!”台下一片鼓掌声。白胡子长老似乎露出了一丝微笑。

三个容器在陆师兄的身边快速的旋转起来,陆师兄也从容不迫的不断地替换着容器。

“哇哦!这是怎么办到的。”小胖惊呼起来,意识到有些失态,赶紧用手捂住嘴。

“不要大惊小怪的。”小刀赶紧对他说。

“太神奇了吧,这就是所谓的「不胖」的容器了?”小胖轻声询问了小刀。

“对啊,陆师兄的这种,就算是「瘦」容器了。”小刀答道,“每个容器只有一个主进程,对应一个服务,每个服务更新,只要修改对应的容器即可,对其他容器没有影响。”

“那这三个容器是怎么交互的?”小胖追问。

“陆师兄用 --publish 参数将每个容器的端口都暴露到了宿主机上,这样可以直接通过宿主机的端口直接访问。”小刀继续说道,“同时,他还使用了 --link 参数,这可以直接在容器中做 hosts 映射,通过 Docker 网桥,而不必暴露端口到宿主机上。”

“那他到底用的是哪种?”小胖不解。

“这就要看他的容器中是如何连接了,两种方式都已经打通了网络。”小刀说道,“在后端 API 的容器中,即可以用宿主机IP:3306 访问数据库,也可以通过 db:3306 访问,还可以通过 Docker 的虚拟网卡,例如 172.17.0.1:3306 访问到。”

“这么厉害,那陆师兄岂不是赢定了!”小胖惊呼。

陆师兄得意地看着台下惊呼的师弟,收功收势,似乎拿了冠军一样接受着台下的欢呼。

“小声点,这还是有很多问题的。”小刀凑到小胖耳旁,轻声说道,“每次更新容器都要重新运功,再开,还是麻烦,时间一长,就记不得,而且网络上也没有隔离。”

“哦,对哦,那还有更好的方法?”小胖问道。

“下面这位,是我们门派新进弟子中的后起之秀,让我们欢迎——小刀!”主持人嗓音洪亮,小刀也被吓了一跳。

“额~掌门,各位,各位长老,师兄们,大家好!”小刀略有些紧张,眼睛瞟着比武台边缘,不敢直视前方。

“啪!啪!啪!”一阵掌声打破了沉默,只见大师兄双手鼓掌,眼神中充满了期待。其余弟子见状,也跟着鼓起掌来。

“我入门不久,给大家献丑了。”小刀鼓起勇气,说罢,右手伸出,只见三个容器瞬间出现在了掌心。

“哇哦~”台下一阵惊呼。“他是怎么办到的,怎么这么快,就启动了三个容器!”

“大惊小怪。”人群中,一个身着灰色长袍,头戴的浅黑色发带的弟子说道。只见他嘴角微微上扬,轻蔑地说道,“一群草包。”

“他谁啊?”离他最近的弟子听到这话,很是不满,想去理论,但是被他身边的弟子拉住,“算了算了,你不知道啊,他可是人称「灰狼」的伍三,直接向掌门汇报,很多人都没见过他。”

又一阵掌声袭来,他们无暇管这个怪人,只有好奇,这个新来的弟子,又展示了什么新的功法。

“其实,我这是投机取巧,用了 docker-compose 法器,提前把容器的信息记下,直接用法器运功即可。”小刀解释道。

如何安装?请见参考。

配置文件 docker-compose.yml 如下

version: '3'
services:
    db:
        image: mysql
    backend:
        image: backend
        links:
        - db
    frontend:
        image: frontend
        links:
        - backend

配置完成后,直接运功

docker-compose up -d

或者直接收功

docker-compose down

容器更新,直接可以修改配置文件,继续运功即可。

docker-compose up -d

然后,就可以查看所有相关的容器。

docker-compose ps

停止一个服务

docker-compose stop frontend

启动一个服务

docker-compose start frontend

还可以简单快速的扩容

docker-compose scale backend=3 forntend=3

docker-compose.yml 配置文件的结构主要如下,

  • version:指定 docker-compose 的版本,最新为 3
  • services:所有服务的定义,每个子键即为一个服务,类似 docker run 启动容器
  • networks:自定义网络隔离和配置,类似 docker network create 创建网络
  • volumes:自定义 docker volume 配置,类似 docker volume create 创建存储盘

使用 docker-compose,可以自动化打包构建和部署,管理服务依赖,快速启动停止服务,且可以使用配置文件进行版本控制。

详细配置项可查询官方文档,详见参考。

“不错不错。”白胡子的长老拍手道,“这个法器用起来确实很方便,但是我还有一个问题:这是单机的情况,如果我有多台物理机或虚拟机,又该如何操作呢?”

后记

单机编排用 docker-compose,那多机的情况怎么办?

欲知后事如何,请关注「容器霸业」,知乎专栏同步更新。

上一章:容器霸业:4 运行时

下一章:容器霸业:6 新征程

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345