Docker学习(一)了解Docker

Docker学习
placeholder image
admin 发布于:2019-03-24 13:06:01
阅读:loading

本批次系列教程的主题是介绍Docker的学习和实践,笔者根据自身的实战经验结合粗浅掌握的深度总结而来。纸上来的终觉浅,绝知此事要躬行,前后也是花费了三周左右的业余时间去学习和实践它,感觉还只是新手入门级水平。

什么是Docker?

Docker是Google使用go语言开发出来的一个开源的应用容器引擎,可以让开发者快速的打包应用程序及相应的依赖程序到一个轻量级、可移植的容器中,再发布容器到任意的服务器上(Linux与Windows都支持Docker)。容器间使用沙箱机制,相互之间互不影响。

image.png

从Docker的图标来看,鲸鱼的背好比是一个部署平台,背上有一个一个的集装箱,集装箱好比是平台中的一个容器,每个容器都是一个独立的盒子,盒子里面可以是有多种对应的应用程序的,而且盒子里面的东西本质上也是由一个微型小系统承载的多款应用软件,所以说Docker是一个应用的部署平台,每一个应用软件都有其对应有系列版本的镜像(安装包),好比一个安装包可以被安装多次,每次的安装都只是在一个指定的容器(微型小系统)中,由主机系统与各个容器直接建立访问映射,从而可实现应用程序的快速部署,与电脑主机安装虚拟机较为类似。



Docker的使用与Maven有一些相似,它们都是需要依赖网络环境连接至中央仓库,根据软件名称及版本从仓库中拉取指定的镜像文件(Image),将镜像文件以容器(Container)的方式运行于虚拟主机中,使主机与容器之间使用虚拟端口映射的方式与外界交互,参考一下不太形象的下图:

image.png


Docker容器可以看做是一个精简版的Linux系统,这个系统精简到200M大小的程度(下载CentOS7需要4G多),去掉了一些与系统硬件相关的东西,只保留了系统内核,所以同样内存大小的机器是可以承载更多的Docker容器的,如下图一个Docker替代了多个客户机的cao作系统,

image.pngimage.png

为什么要学习Docker?

(1)、消除协作编码时“在我的机器上可正常工作”的问题

其实这个问题我个人并不是很赞同,因为“在我的机器上可正常工作”的问题出现的原因分为许多种,除了一些硬件环境、程序代码等导致的因素外,通常还会伴随着的一个原因是数据库链接目标不同,换句话说是由于数据不同而导致出现的问题。

(2)、面向人员范围广

Docker是开发人员、运维人员的秘密武器,面向开发人员、测试人员、运维人员层面使用,如开发人员使用Docker可以快速搭建和配置开发测试环境,使得将重点放置在功能的编码实现层面,无需再费劲的去安装一些其它依赖软件和解释安装过程。

(3)、不受应用、语言或技术栈限制

构建、测试、调试和部署以任何编程语言编写的 Linux 和 Windows Server 容器应用,无需担心任何不兼容或版本冲突。

(4)、内置容器编排

Docker 内置易于配置的 Swarm 集群功能。在使用最小设置的模拟生产环境中测试和调试应用。

(5)、。。。。。。可自行了解。

怎么学习它?

笔者前前后后看了不少关于它的视频教程,多数都是随便看看,以至于没有深入实践它,也没有完全的看完它,记得看了有“腾讯课堂”、“传智黑马”、“开启Docker之旅视频”,最终最后这个个人感觉不错,视频看的较多,基本看完了,所以如果你对此有兴趣不妨也从这些来源开始了解起来吧。

笔者学习它的背景是有较为丰富的编码经验和过硬的技术栈,但是对于Linux来说实为新手中的新手水平,如果你比我更加熟悉Linux相信你的学习将更加的轻松。

本篇章的系列教程包括的范围为:

了解Docker、安装Docker环境、Docker在线安装Tomcat9、DockerFile本地自定义安装Tomcat9、Docker在线安装MySQL、DockerFile在线安装MySQL、DockerFile本地自定义安装MySQL等。


 点赞


 发表评论

当前回复:作者

 评论列表


留言区