什么是 docker?

苦逼的码农

共 1615字,需浏览 4分钟

 ·

2020-02-09 23:25

来源:互联网侦察

作者:channingbreeze




829dd2b10b31088563b1bf07c941c336.webp


话说小史已经接受了A厂的offer,这不,已经在公司附近租好了房子,准备搬家过去住了。


家里的东西真是多呀,小史的很多家具都是组装起来的,现在都已经拆散放到吕老师的车上了。


就这样,吕老师开车带着小史一起去了公司附近的新住址。


开了一个多小时,终于到了新住址。一进房间,小史就忙着把心爱的电脑桌拼起来。


但是电脑桌拆起来快,装起来可不好装,几十个组件,一百多个螺丝钉,小史装了一下午,最后还发现少了几个螺丝钉。


e09ddf46a16bc8a0ae59b24b70bc1b00.webp


【晚饭】


晚上,小史和吕老师一起吃饭。


6aaf8d25da26d9848f8f02502c9b58d7.webp

8e19fbee37c68b72c30fd3e7d70cd7b2.webp

1a9747b06a435cde177fecfe5d474207.webp

b5c2f8ea90da9e6717199c768d03dffd.webp

54d7eeef4a201ebbe1fe193480e3215a.webp

0a176ca0fce918045440e444599eb596.webp


【吕老师前传】


吕老师以前还是程序员的时候,在B厂上班,有一次一个新项目要发布上线。结果测试环境跑得好好的,生产环境死活跑不起来。


8856b53122ad82dfc551371b85b6c4fa.webp


【docker有啥好】


1b059084c651174f5bc46da0e8666c4d.webp

小史:docker我用过,不过当时是因为视频教程里用的docker部署的环境,所以我也就跟着做了,其实反而觉得更麻烦了,它到底哪里好呢?

d204d8e736b0f35ba9ea14f318ee6e13.webp

83446887d203a21f22254d8db98f5eb5.webp

596aa698bc2a6b1b86195a0a03162ee6.webp

60bee2e1fa9faa326a42a6892fba2c27.webp

3089ed9dc4741d0398946cfab6fdbb01.webp

78c2c0449f5c5cf8a6d56bdef876a35e.webp

0a0e8665ec61af8230ff07052551f22e.webp

185f5d4f6fa9b9912c213f9f6051d1e4.webp

6436f55c59eacd6ef08bbe6a14a7a0e3.webp

吕老师:这方面docker做了很多事情,比如提供了基础镜像的方式,docker官方的镜像仓库里有很多镜像,可以直接拉下来用,然后新的镜像可以以它们为基础,在上面commit新的东西。

624a0b33ff8d2ea897f575f98c303990.webp

04b2072daabf07731de885a8e81b8f17.webp

吕老师:同时,docker使用了镜像分层的技术,新的commit会产生新的层,可以复用一部分老的层。这样一来制作新镜像的速度还是挺快的。

4792dc804ea43cf72aa6a900661ab4bf.webp

e57b50ed0358a2ceebb304be5dfa0798.webp

小史:我明白你的意思,这样确实制作镜像的时候可以加快速度,但是假如我要把整个环境放到另外一个机器部署,还是要拷贝整个大的镜像过去吧?

d513663297e38c2e82e20d17bd994ae2.webp


【dockerfile】


6f33172d300b0ee01d5f2910f121ef6e.webp

吕老师:你说的对,电脑桌不拆,直接放我车上放不下,那么能不能这样,我们拆的时候,就把哪个螺丝在哪里这些细节记录好,到时候装的时候只要按照记录顺序安装就好。

c7e23b4904bf4370f1140ecc958db4c1.webp

2203ff46432888cfc68ef221896b9a9f.webp

a884b2d413df35c27840138a6e86d70e.webp

248204a5b66c7e4b6ae975f01f2aa270.webp

b2fdd706d461baa29a96109494df7565.webp

2e8b13f9149e2b963d1664a440afdb35.webp

851bc2ad76b14de4f5d357936c838cd7.webp

吕老师:你看,就这个简单的文件。第一行它告诉你这个镜像基于ubuntu基础镜像,第二行告诉你这个镜像的维护者的信息,第三行的RUN就是要执行的shell命令,比如这里,是在ubuntu的基础镜像上安装一些额外的东西,第4行是镜像启动之后执行的初始命令。

4b17bcf874c4b0c848a185578c674a26.webp

b440b4706f9578c80923db97a012ecea.webp

56bd4e921e98a8ebc50b2ab75823bdb8.webp


【docker最佳实践】


533cc428d816308a82444abeda149648.webp

bc2bc92839cd5c520565b3b5eb7b833d.webp

c7da385c320dba937f77bb86ca756ebf.webp

372ba9c62beff58102521082d69dd814.webp

b0e3e78111d727ca06ff0316af3e3726.webp

d662b0fcc7c4e139094a717d744399b7.webp

0e0ff9c05f21d99f26082b3cc96c8e38.webp

c879a840c850eeb98025b66fa75a3050.webp

f8716c63177c4862f5cee8dd23c93c6f.webp

吕老师:其实在网络好的情况下,下载一个镜像一般来说比重新打一个镜像更快,所以最终部署都是基于镜像去部署,不会重新打镜像了。

edea2781540c2943a39eed5bc59f41a7.webp

2a1238288dcd1e2d5bc28dcf46a6c7ca.webp

e183aec23f61a76625cb8c8b3ebe6eac.webp


【docker关键概念】


929e5383d854d065431246b3d2e5aafa.webp

a38d7aeae744eaa44d8348c57cfe65a9.webp

dde3f60908d7b807e8d11fb62e294ff9.webp

a64f4a9356c33bbdf8cf8cda50c19bbb.webp

957f9ffdeb56441ac5c6dcd283d6dbda.webp

吕老师:你说的没错,其实镜像有点像代码,容器有点像进程。代码是存放在硬盘上的东西,而把代码运行起来,就会形成一个进程,进程才是跑起来的程序。

e661afe5f9dfa77b269028636cc27953.webp

小史:对,你这个比喻真是贴切,镜像和容器也是一样,镜像是存在硬盘上的东西,镜像运行起来,就形成一个容器,容器才是真正跑起来的程序。只不过在docker中,我们可以进入容器,做一些操作,然后再把容器中的改动提交形成一个新的镜像。

3bd5c32c614408505f73552a0714e7a3.webp

a8179578b81adc316bf792018d640877.webp

小史:如果说镜像是代码的话,镜像仓库就有点像github了,我们写好的代码会提交到github上面进行保存和管理,方便在其他地方也能下载代码。镜像仓库也是类似的,制作好的镜像,就把它放到镜像仓库,方便其他人直接用镜像部署。

6e4885ccd46b91cac9ad013d75a85231.webp


【笔记】


聊天结束后,小史悄悄在手机中记录下了这次的笔记。


一、容器技术docker的思考方式是,将环境一起打包镜像,避免部署时的环境问题。

二、dockerfile记录镜像的制作步骤

三、镜像、容器、仓库的概念可以类比代码、进程、github


【饭后】


吃完晚饭,小史和吕老师走在大街上,望着天上的星空。


f777af065ff9b34ead0e6d9ec1ffb5a9.webp

2eb5a57e8814ec16dfa9e9d3d68c0ef5.webp

861642d19be20c818ea1af1516e0fcac.webp

cc23fceba20c401898c12742ca1a7c60.webp

5ef272892c0ce273c9e5a3101bc7a697.webp



我整理了几百本CS相关的电子书,全部都放在了这个Github:https://github.com/iamshuaidi/CS-Book(点击阅读原文直达,电脑打开更佳)

推荐阅读

全部文章分类与整理(算法+数据结构+计算机基础),持续更新

【吐血整理】那些让你起飞的计算机基础知识:学什么,怎么学?

普普通通,我的三年大学

写公众号15个月以来,这一路上的学习与收获

历经两个月,我的秋招之路结束了!

2020 第一篇原创 | 我是如何让自己变的更加优秀的?


浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报