Docker教程

Docker简介

Docker 是 Docker.Lnc 公司开源的一个基于 LXC 技术之上搭建的 Container 容器引擎,Docker 源代码托管在 Github上,Docker 是基于 Go 语言开发的并遵从 Apache2.0 协议开源。

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),学习仅使用社区版就可以了。

Docker Logo

01 docker logo.png

Docker 的思想源于集装箱,集装箱解决了什么问题呢?在早期运输货物需要不同分类的船,例如运输水果的船,运输生活用品的船,有了集装箱后,在大船上,可以把货物分类到不同的集装箱中,水果一个集装箱,生活用品一个集装箱,它们之间互不影响,只要把货物封装好集装箱里,就可以把不同类的货物一起运走。

通过 Docker logo 也可以看出所以然来,这是一只鲸鱼,它托着许多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可看成集装箱,每个集装箱中都包含自己的应用程序。

Docker概念

Docker 是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用 Linux 容器来部署应用程序称为集装箱化。

集装箱化的优点:

特点 描述
灵活 即使是复杂的应用程序也可封装。
轻量级 容器利用并共享主机内核。
便携式 您可以在本地构建,部署到云上并在任何地方运行。
可扩展性 您可以增加和自动分发容器副本。
可堆叠 您可以垂直堆叠服务并及时并及时堆叠服务。

Docker特点

  • Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

  • 总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  • Docker容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker的优点

轻量级

  • 所有容器在一台机器上共享同一个操作系统内核,这样他们立即开始,并更有效地利用内存。Image 是从分层文件系统的构建,这样他们能够共享公共文件,使得磁盘使用率和 Image 的下载更加高效。

开放

  • Docker 容器是基于开发的标准,允许容器运行在主流的 Linux 发布版和 Microsoft 操作系统作为所有的基础设施。

安全

  • 容器使得应用程序彼此隔离,而基础架构同时为应用程序提供了额外的保护层。

Docker目标

Docker 是一个轻量级的操作系统虚拟化解决方案。

Docker的主要目标,用官网的概括来说就是 “Build,Ship and Run Any App,Anywhere”:编译,装载任何App,在任何地方都可以运行,我们大概理解就是一个容器,实现了对应用的封装,部署,运行等生命周期管理,只要在glibc的环境下,到处都可以运行。这点在企业的云服务部署是有非常广泛的应用前景。

Docker教程总结

Docker具有轻量级、开放和安全的特点。