作为开发者;
Git 是我们的必备技能;
它可以记录文件开发历史;
可以在本地和服务器上保持文件的一致性;
但是我们的代码都依赖于运行环境;
比如说典型的 LNMP 环境;
如果环境不一致;
代码跑出来的效果肯定也是很多问题的;
那能不能像管理代码一样来管理运行环境呢?
Docker 就可以达到统一运行环境的目的;
Docker 的精髓就在于可以保证各个环境的一致性;
一个经常拿来跟 Docker 对比的是虚拟机;
虚拟机是虚拟了一个完整的系统;
比如说我们可以在 Mac 电脑上启动一个 Windows 系统的虚拟机;
虚拟机的优点是隔离性非常的强;
缺点是因为是虚拟的完整的操作系统;
所以性能损耗也比较大;
比较占用资源;
而 Docker 则是使用了 linux 底层的 Namespace
和 Cgroups
;
Namespace 主要是进行隔离;
而 Cgroups 则是控制、限制资源比如说 CPU、内存等;
因此优缺点跟虚拟机相反;
性能损耗非常小;
但是隔离的没有虚拟机彻底;
Docker 有三大核心概念;
这里举个不是很恰当但是 PHPer 容易理解的类比;
Docker | WordPress |
---|---|
容器 | 一个正运行着的 WordPress 网站 |
镜像 | WordPress 的源代码 |
仓库 | 托管 WordPress 源代码的 Github |
仓库类似于 Github ;
Github 上面有很多项目代码;
仓库里面有很多的镜像;
镜像类似于托管在 Github 上的 WordPress 源代码;
我们可以从 Github 仓库上拉取 WordPress 代码;
从仓库中拉取镜像;
代码是静态的;
镜像也是静态的;
如果我们想要一个可以访问的博客应用;
我们需要把 WordPress 的代码运行起来;
我要想得到一个容器;
我们就需要运行一个镜像;
是时候拿出吃灰用的服务器了;
后续的文章中我都是在 Linux 18.04 中操作;
Mac 和 Windows 中 Docker 的实现跟 Linux 中的不完全一样;
建议在 Linux 服务器或者 Linux 虚拟机中学习;
另外 Docker 需要 sudo 权限;
后续的文章都是在 sudo -i
后执行的;
本系列文章主要是作为索引带领大家入门 Docker ;
不会对每个知识点都详尽讲解;
有兴趣的同学自行搜索学习扩展;
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
hedeqiang :虚拟机的有点是隔离性非常的强; 发现一处错别字
2019-11-02 17:12:35 回复
云淡风晴 :多谢提醒; 已更正;
2019-11-03 17:24:00 回复
倔强的旮旯 :111
2019-10-31 11:46:08 回复
? :博主你好,借楼请教一下,laravel博客的第三方登录 QQ登录授权回调错误 那个根据你的文档路径提交到了QQ应用上面。还是redirect uri is illegal(100010),这我就很尴尬了,找不到原因在哪。
2019-10-12 11:29:19 回复
云淡风晴 :确保都一致的话;看下是不是 http 和 https 的区别?
2019-10-13 14:56:56 回复
? :谢谢博主,找到原因了。网络不稳,没有提交成功导致。
2019-10-15 09:53:38 回复
巴特 :博主,你LOGO处怎么有代码在外面。
2019-10-08 17:36:58 回复
████████████ :设计的就是如此啊
2019-10-10 17:07:17 回复
null :终于更新了
2019-10-08 17:23:52 回复
wcxxxxxx :终于更新了
2019-10-07 22:33:43 回复
最新评论