从Docker零基础到懂一点实践教程(一)

前言

Docker简介

Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师能够以统一的方式跨平台地发布应用,并且在几乎没有额外开销的情况下提供资源隔离的应用运行环境。由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得了诸多IT厂商的青睐,其中更是包括 Google、Microsoft、VMware等业界领导者。同时,Docker在开发者社区也是一石激起千层浪,许多技术人员纷纷开始关注、学习和使用Docker。许多企业,尤其是互联网企业,也在不断加大对Docker的投入,大有掀起一场容器革命之势。[1]

Docker从2013年诞生,短短两年时间就在全球IT技术圈内迅速走红,实乃技术圈内不可忽视的一阵飓风。然而,Docker是什么,Docker带来了什么?

Docker官方如此描述Docker:“Build, Ship, Run. An open platform for distributed applications for developers and sysadmins”。换言之,Docker为开发者与系统管理者提供了分布式应用的开放平台,从而可以便捷地构建、迁移与运行分布式应用。
多年来,IT行业中开发与运维一直是两个界限清晰的词。开发工程师专门从事软件的开发工作,最终交付软件代码;运维工程师则部署前者交付的软件,并接管软件的运行与管理。然而,在长时间的实践过程中,开发与运维分离的方式难免存在弊病,两者职责的过分清晰导致软件效率的降低。随着分布式系统的流行,系统规模越来越大,软件越来越复杂,系统环境配置暴露的问题层出不穷。究其缘由,还是因为开发人员缺少软件运行环境的认知,而运维人员对软件逻辑所知甚少。在这样的背景下,DevOps横空出世,提倡开发与运维不可分割,协调并进。

Docker无疑是DevOps大潮中最具实践价值的不二法宝。Docker从Linux内核的角度出发,属于轻量级虚拟化技术,有能力秒级提供应用隔离环境,完成云计算时代分布式应用的第一需求“隔离”。另外,Docker的镜像技术利用联合文件系统的优势,自下至上打包系统软件、系统环境以及软件程序,将运行环境与应用程序灵活地结合,快速运行Docker化的应用程序。同时,可读性极强的Dockerfile,极大地简化镜像的复杂性,并为镜像的转移与重新构建提供了可能性。

Docker提供轻便的资源分配方式,解决应用运行与系统环境的依赖,弥合应用跨节点迁移的鸿沟,种种特性都表明Docker几乎就是为“云计算”而生的。如今,Docker社区不断扩大并健康发展,多家国际IT巨头也纷纷宣布支持Docker,这一切更是让全球IT人士对Docker的未来充满信心。[2]

参考文献:
1. 玩转Docker镜像,孙宏亮 著
2. 《Docker源码分析》,计算机与互联网类,孙宏亮 著,前言部分

版权声明

本系列文章(下称“本文”)中所涉及的实验均出自《极客学院》的相关视频,知识脉络也是按照视频资料进行梳理的,可以将本文看作是《极客学院》相关课程的梳理、归纳与总结。撰写本文的目的是为了大家学习和交流Docker技术,希望大家支持《极客学院》的正版课程和原创视频,转载本文不受任何约束,但不可以用作商业用途,作者本人也不承担因此产生的任何法律责任。

作者自述

本文边学边写,历时两个多月,所做过的实验也并非没有遇到问题。问题多数是由于实验环境不同,以及Docker版本、Ubuntu系统、各种通信协议版本的不同所导致,困难的时候,曾经一度搁浅好几天。研究一门技术有时候不但需要解决问题的思路,还需要一定的耐心和韧性。经过这次的学习,作者不仅收获了知识,更收获了“大功告成”的成就感与“如释重负”的快乐,也希望能把这份快乐带给每一位读到这篇文章的人。因此,作者决定为这篇文章起名为《从Docker零基础到懂一点实践教程》,这也是作者本人的心路历程。

另外,这里还要提一句,本文的最后一篇里还有一个悬而未决的问题,烦请高人指点!

问题反馈

由于本文是作者利用业余时间一边学习一边总结的,并且作者本身也是Docker的初学者,所以难免在知识上有所欠缺,虽然作者已经力求精准,但也难免出现一些纰漏,还望读者见谅并予以指正。谢谢大家!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值