Docker入门——Docker是什么

最近在工作中使用到了Docker,尽管几年前就已经对这个名字并不陌生,但却一直没有花时间来理解它。

本文试图带着以下几个问题来认识一下Docker:Docker是怎么样出现的?Docker是什么?Docker有什么优点?

Docker为何出现

在实际的开发工作中,大家可能经历过这样的场景:测试人员提交了某个缺陷,当你试图去重现的时候,却发现在你的开发环境中并不存在这个问题;于是你跟测试人员讲没有问题,测试人员却坚称有问题;最后你花了不小的力气才发现,是开发环境和测试环境的某个软件包版本不同导致的差异。

环境配置一直是软件开发中的一大麻烦事。比如运行Java开发的应用,每换一台服务器都得下载安装JDK,配置环境变量JAVA_HOME,才能让java程序能够运行。但这并不能保证你编写的java代码一定就能够运行,因为有可能你开发时使用的JDK版本高于服务器安装的JDK版本。

环境配置如此麻烦,每换一次系统就得重新配置一次,那有的人就想到,能不能将这些系统环境和配置统统打包到一个软件里面,每次换系统只需要安装这个软件,就能完整还原出一套与之一样的系统环境出来?

很多人有使用过VMware,这个虚拟机软件可以在一台电脑上同时运行更多的Microsoft Windows、Linux、Mac OS X、DOS系统。虚拟机(virtual machine)就是带系统环境安装的一种解决方案。虚拟机看上去跟真实系统一样,对于底层来讲,虚拟机就是一个普通文件,不需要了就删掉。

虽然虚拟机可以还原出一套原始的系统环境,但使用过VMware的可能也会感受它比较明显的几个缺点:

  1. 硬盘使用多,一般虚拟系统文件仍然需要使用上GB的硬盘存储空间;
  2. 内存虚耗,及时只使用虚拟机中的一个应用,也需要足够多的内存才能使虚拟机运行起来;
  3. 启动慢,由于内存分配原因,虚拟机启动速度甚至可能不如原生系统,并且像用户登录这样的步骤在启动时无法跳过,一般需要等待一两分钟,浪费时间;

Docker是什么

由于虚拟机存在包括上述的这些缺点,Linux 发展出了另一种虚拟化技术:容器。

容器技术本质上讲是将程序隔离,打包的技术。容器不是模拟一个完整的操作系统,而是对进程进行隔离。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

Docker是容器的一种封装,是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中。

正如Docker的LOGO图标所示,Docker就像一个集装箱运送平台,每台计算机就像一个港口,各式各样的软件比作一个个集装箱,集装箱以及各个集装箱之间的关系被一起打包到运送平台里,这个平台也就是容器。有了这个容器,我们就能方便地把一批集装箱运送到其他港口,并且方便进行装载,复制和移除。

Docker有什么优点

Docker脱胎于容器。容器由于是进程级别的,相对于虚拟机而言有一些明显的优点:

  1. 体积更小,像alpine镜像只有几MB,就能模拟出Linux环境,这是虚拟机文件所无法达到的;
  2. 启动更快,容器内只有特定的应用程序,而虚拟机是整个操作系统,容器的启动几乎是秒启,完胜虚拟机;
  3. 性能更强,容器之间可以共享资源,并且容器只占用需要的资源,所以每台计算机可以支持上千个容器运行;

对Docker本身而言,方便快捷的软件可移植性应该是它最大的优点。当要使系统环境在不同的部署环境(比如本地,生产,测试)保持一致时,首先想到的是使用Docker,Docker可以借助镜像打包方式,将应用及依赖项打包后在其他环境批量部署。

另外,由于容器使用的资源要少得多,这就是说,在相同的硬件上如果使用Docker,可以运行更多的虚拟化服务,将为软件开发节约不少硬件成本。同时,Docker批量可重复部署的特点也会减少开发和运维的工作量,节约人工成本。

 

参考资料:
https://www.cnblogs.com/codelove/p/10030439.html
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

Docker —— 从入门到实践》是一本介绍Docker技术的书籍。Docker是一个开源的容器化平台,可以帮助开发者更方便地构建、部署和运行应用程序。这本书从入门到实践的角度,详细介绍了Docker的基本概念、原理和使用方法。 书中首先介绍了Docker的背景和发展历程,包括为什么需要容器化技术以及Docker的优势。接着,作者详细讲解了Docker的安装和配置,包括在不同操作系统上的安装方法。然后,书中以一个个实例来引导读者学习如何使用Docker进行应用程序的容器化和部署。这些实例包括创建镜像、构建容器、管理数据卷等。 在实践部分,书中介绍了如何使用Docker搭建开发环境和测试环境,以及如何使用Docker进行持续集成和持续部署。另外,还介绍了Docker的监控和日志管理、网络配置以及安全性等方面的内容。 这本书的优点在于它结合了理论和实践,既对Docker的原理和概念进行了深入讲解,又提供了丰富的实践案例。通过学习这本书,读者可以系统地掌握Docker的基础知识,并能够利用Docker来管理和部署应用程序。 总的来说,《Docker —— 从入门到实践》是一本很好的Docker入门书籍,适合有一定编程和系统管理基础的读者。它的内容丰富有趣,通俗易懂,通过读这本书,读者可以快速上手使用Docker,并能够在实践中不断深化对容器化技术的理解和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值