Docker入门第一章

Docker

  Docker是基于Go语言实现的云开源项目。

    Docker的主要目标是“ Build(构建),Ship and Run Any app(发布和运行任何应用程序),Anywhere(任何地方)”

        通过对应用组件的封装 分发 部署 运行 等生命周期的管理,使用户的APP,及其运行环境能够做到,一次封装,到处运行

        APP:可以是一个Web应用/数据库应用等

 

Docker的产生

    Docker没产生前面临的问题:

        一款产品从开发到上线,从操作系统到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心的东西很多,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。

环境配置麻烦,换一台机器,就要重来一次,费力费时。

    传统上:

        1:软件编码开发/测试结束后,所产生的成果即是程序或是能够编译执行的二进制字节码等(java为例)。

        2:为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让运维团队得以部署应用程序,开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。

        3:环境和交接等不定因素众多,导致常常发生部署失败的状况。

    Docker解决所面临的问题:

        Docker之所以发展如此迅速,也就是因为它对此给出了一个标准化的解决方案。

        Docker从根本上解决问题,软件可以带环境安装

        也就是说,安装的时候,把原始环境一模一样地复制过来

        开发人员利用Docker可以消除协作编码时,"在我机器上可正常工作"的问题。

 

Docker镜像的设计

        1:Docker得以打破过去[ 程序即应用 ]的观念。

        2:透过镜像( images )将作业系统核心除外,运作应用程序所需要的系统环境,由下而上打包(运行文档,配置环境,运行环境,运行依赖包,操作系统发行版),达到应用程序跨平台间的无缝接轨运作。

例子:

    之前在服务器配置一个应用的运行环境,要安装各种软件,就拿尚硅谷电商项目的环境来说,Java/Tomcat/MySQL/JDBC驱动包等。

        1:安装和配置这些东西非常麻烦

        2:不能跨平台

               在Windows上安装的这些环境,到了Linux 又得重新安装。

        3:不能跨系统

                换一台同样的操作系统的服务器,要移植应用也是非常麻烦的。

 

解决传统上的问题:

    1:虚拟机( Virtual machine )就是带环境安装的一种解决方案。

        它可以在一种操作系统里面运行另一个操作系统 ,比如Windows 系统里面运行 Linux系统。

             应用程序对此号无感知,因为虚拟机看上去就跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要就删掉,对其他部分毫无影响。

            这类虚拟机完美的运行另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。

                虚拟机的缺点:

                    1.资源占用多

                    2.冗余步骤多

                    3.启动慢

                                下图为一个系统使用虚拟机装另一个系统的图

 

 

    2:LXC,Docker方式

        由于虚拟机存在这些缺点,Linux 发展出了另一种 虚拟化技术:Linux容器( Linux Containers,缩写:LXC )

        Linux 容器不是虚拟一个完整的操作系统,而是对进程进行隔离

            有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。

            容器和虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。

            系统因此而变得 高效轻量并保证部署在任何环境中的软件都能此终如一地运行。

                                                                                        下图为:LXC

 

 

Docker的前辈

    Docker 是基于Linux中LXC技术上发展过来的。

    将应用运行在Docker容器上面,而 Docker容器在任何操作系统都是一致的,这就实现了跨平台,垮服务。

        只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作系统。

 

 

比较Docker和传统地虚拟化方式地不同之处 :

        1:传统虚拟机技术是虚拟出一套硬件后,在其运行一个完整地操作系统,在该系统上再运行所需要应用进程。

        2:容器内地应用进程直接运行宿主地内核,容器内没用自己的核心,而且也没用进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

        3:每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

 

跳转门:

Docker入门第二章:https://blog.csdn.net/weixin_41123719/article/details/84729067

Docker入门第二章:https://blog.csdn.net/weixin_41123719/article/details/84729206

Docker入门第三章:https://blog.csdn.net/weixin_41123719/article/details/84726840

Docker入门第四章:https://blog.csdn.net/weixin_41123719/article/details/84726869

Docker入门第五章:https://blog.csdn.net/weixin_41123719/article/details/84726953

Docker入门第六章:https://blog.csdn.net/weixin_41123719/article/details/84727051

 


 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值