Docker 入门教程(一)概念

作为开发者;
Git 是我们的必备技能;
它可以记录文件开发历史;
可以在本地和服务器上保持文件的一致性;

但是我们的代码都依赖于运行环境;
比如说典型的 LNMP 环境;
如果环境不一致;
代码跑出来的效果肯定也是很多问题的;
那能不能像管理代码一样来管理运行环境呢? Docker 就可以达到统一运行环境的目的; Docker 的精髓就在于可以保证各个环境的一致性;

一个经常拿来跟 Docker 对比的是虚拟机;
虚拟机是虚拟了一个完整的系统;
比如说我们可以在 Mac 电脑上启动一个 Windows 系统的虚拟机;
虚拟机的优点是隔离性非常的强;
缺点是因为是虚拟的完整的操作系统;
所以性能损耗也比较大;
比较占用资源;
而 Docker 则是使用了 linux 底层的 NamespaceCgroups
Namespace 主要是进行隔离;
而 Cgroups 则是控制、限制资源比如说 CPU、内存等; 因此优缺点跟虚拟机相反;
性能损耗非常小;
但是隔离的没有虚拟机彻底;

Docker 有三大核心概念;

  1. 容器
  2. 镜像
  3. 仓库

这里举个不是很恰当但是 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 ;
不会对每个知识点都详尽讲解;
有兴趣的同学自行搜索学习扩展;

docker

白俊遥博客
请先登录后发表评论
  • latest comments
  • 总共10条评论
白俊遥博客

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 回复