人生苦短,不如养狗
-
什么是Docker
-
Docker的特性
-
Docker的核心概念
一、什么是Docker
通过对于闲鱼Coder学Docker(一):什么是容器技术学习,大家应该对容器技术有了一定的了解。那么什么是Docker呢?
Docker其实就是容器技术众多具体实现中的一种,当然,是比较优秀那种。Docker是基于Go语言实现的开源实践项目。具体发展流程这里就不过多赘述了,大家可以自行Google一下。
Docker的构想是要实现“Build, Ship and Run Any App, Anywhere”,即通过对应用的封装、分发、部署、运行生命周期进行管理,达到应用组件级别的“一次封装,到处运行”。这里的应用组件,既可以是一个Web应用、一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。
和其他优秀的工具一样,Docker并不是从0直接蹦到100,而是在其他的容器技术基础上进行相应的扩展和优化。其中较为重要的一个容器技术就是Linux容器技术,即LXC技术(对于LXC技术,有兴趣的同学可以自行Google)。
二、Docker的特性
从上面的介绍中,其实已经包含了Docker的一个特性:一次封装,到处运行。Docker通过容器打包应用、解耦应用和运行平台。这意味着迁移服务的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类型的平台。
围绕这个特性,Docker在开发和运维方面展现出了其他几个极其优秀的特性:
-
更快的交付和部署
-
更高效的资源利用
-
更轻松的迁移和扩展
-
更简单的更新管理(主要通过Dockerfile文件进行管理)
也正是这样几个特性,Docker才受到了广大开发和运维人员的追捧。
三、Docker核心概念
相信了解Docker的同学,对镜像、容器、仓库这些名词一定不陌生,其实Docker的绝大部分操作都是基于这三个核心概念进行的,下面我们就来具体了解一下。
1. Docker镜像
镜像其实就是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。Docker镜像也是如此,它类似于虚拟机镜像。通过镜像文件,用户可以快速的创建Docker容器(即应用运行实例),所以镜像是创建Docker容器的基础。
简单理解,可以认为Docker镜像就是一种应用安装包。当然这种安装包有点特殊,它不仅会帮你安装你需要的应用,同时他也会帮你安装一个应用所需的相对独立的运行环境。
2. Docker容器
这里的容器就是我们一直在聊的容器技术的容器。Docker容器相当于一个轻量级的沙箱,它为每一个应用的运行提供了一个相对独立和封闭的运行环境,而且这个环境都是相同的。这样就保证了无论如何迁移都不会出现因为环境不同而导致应用运行出现不同。
Docker容器是从Docker镜像中创建的应用实例。既然是应用实例,用户就可以进行启动、开始、停止和删除操作。这里需要注意一下,镜像自身是只读,而容器在启动的时候,会在镜像的最上层创建一个可写层。
3. Docker仓库
Docker仓库适用于集中存放Docker镜像文件的地方。
其实Docker仓库的设计理念和Git的设计理念非常相似。Docker仓库也分为公有仓库和私有仓库,目前最大的公有仓库是官方提供的Docker Hub,当然,官方也提供私有库的服务,不过你懂得,嘿嘿嘿。当然,大家也可以自己搭建私有仓库。在创建完自己的镜像之后可以使用push命令将它上传到公有库或者自己的私有库,当你需要在另外一台机器使用的时候,只需要从这个仓库pull下来就行了。(Git首次初始化本地代码库的时候需要使用clone命令)
四、总结
水了两篇文章,终于开始正式讲Docker了。从上面的介绍中可以看到,Docker其实并不是一个全新的技术,所以不用担心学秃了头,只要结合过去了解的Linux、容器等技术、操作系统等相关的知识,其实学起来还是比较快的,吧,哈哈哈~
参考资料
《Docker技术入门与实践》第3版
最后推荐一个在蚂蚁金服的朋友的公众号:
以及一个正在做男装的前程序猿的淘宝商铺:四季优品外贸汇
以及闲鱼的个人博客: https://www.swzgeek.com
原文始发于微信公众号(Brucebat的伪技术鱼塘):闲鱼Coder学Docker(二):初识Docker
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/90252.html