最近Python程序员提到最多的一个框架就是docker了,对于一些新手来说还不知道他的存在,这里小千就用几期文章给大家介绍一下这个docker和使用教程,喜欢的话记得关注一下。
1.什么是Docker?
Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2.Docker的设计理念和概念
docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后一个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。
所以Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻松部署应用程序。目前,Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
3.Docker的组成部分
一个完整的Docker有以下几个部分组成:DockerClient客户端、Docker Daemon守护进程、Docker Image镜像、DockerContainer容器。
通过运行images启动容器,一个images是一个可执行的包,其中包括运行应用程序所需要的所有内容-代码,运行时,库、环境变量和配置文件。容器时images运行时示例-当被执行时(即,images状态,或者用户进程)在内存中,可以使用命令查看正在运行容器的列表docker ps,就像在Linux中一样。
4.容器虚拟化和用途
Docker的主要用途,目前有三大类:
提供了一次性的环境:比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
提供弹性的云服务:因为Docker容器可以随开随关,很适合动态扩容和所容。
组建微服务架构:通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
5. Docker的使用场景
使用Docker容器开发、测试、部署服务:因为Docker本身非常轻量化,所以本地开发人员可以构建、运行并分享Docker容器。容器可以在开发环境中创建,然后再提交到测试,最终进入生产环境。
创建隔离的运行环境:在很多企业应用中,同一服务的不同版本可能服务于不同的用户,那么使用Docker非常容易创建不同的生成环境来运行不同的服务。
搭建测试环境:由于Docker的轻量化,所以开发者很容易利用Docker在本地搭建测试环境,用来测试程序在不用系统下的兼容性;甚至搭建集群的部署测试。
构建多用户的平台即服务(PaaS)基础设施。
提供软件即服务(SaaS)应用程序。
高性能、超大规模的宿主机部署。
以上就是关于Docker的一些基础介绍了,下一期我们给大家介绍Docker的安装和常用概念,千万不要错过了。
最后如果同学对Python培训课程感兴趣的话,不妨来千锋Python培训班了解一下我们的Python培训课程,更有免费的Python学习资料可以领取,赶紧来咨询一下吧!