Docker合集(一)什么是Docker?

Docker合集(一)什么是Docker?

原创不易,转载请注明来源。有疑问欢迎大佬提出。

随便说点什么

Docker一直有在粗劣的使用:Dockerfile、docker-compose、kubectl、使用docker便捷的部署别人的应用、使用Docker部署自己的小工具……

目前的水平,只会一些简单的使用,简单的工具,也许连入门的都达不到。新入职的公司也已经全面拥抱容器化。在云计算、大数据非常热门的今天,熟练掌握容器技术,绝对是必不可少的。So…从头系统化的学习Docker吧。

该系列的文章会一直更新下去。学习参考的文章、书籍会一一标注出来。文章提到的工具、app也会一一附上下载链接。

一起学习吧,有说错的地方,欢迎各位大佬评论提出,一起学习进步。我们都站在巨人的肩膀上。

Docker的背景

先自报家门嘛,看过魔戒的都知道,关键人物出来时自我介绍都会说一句。我的名字是什么,是xxx之子。

Docker 是基于 Go 语言实现的开源容器项目,诞生于2013年初。官网是docker.com,相关文档、安装包。都可以在官网上找到。支持目前几乎所有的主流操作系统包括 Linux 各大发行版(Centos、Ubuntu)、Windows、MacOS。

Docker基于 Linux 容器技术(Linux Containers, LXC)。

Docker 的设计思想是:Build, Ship and Run Any App, Anywhere(一次封装、到处运行)。听起来怎么那么像Java(一次编译,处处运行)????

这咱不管,总之是一个好的设计思想就可以了。

为什么要使用Docker,Docker的优点是什么

Docker 在正确的地点、 正确的时间顺应了正确的趋势一一如何正确地构建应用 。

在云计算时代,开发者创建的应用必须要很方便的在网络上传播。怎样才能达到方便二字?无需编译、脱离环境依赖、脱离物理硬件的限制……

  • 这里举个例子:

    假如我们要使用 LAMP (Linux+Apache+MySQL+PHP )组合来搭建一个网站 。 按照传统的做法,首先需要安装PHP环境、Apache、MySQL以及它们各自运 行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等)。经过大 量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则进行调试追踪,意味着我们需要花更多的时间代价和面临位置的风险。

    特别是如果我们需要加一台设备、或在另一台服务器上部署这个程序。那么同样的环境我们需要再搭一遍。这真心的非常非常幸苦。

Docker在开发和运维中的优势

对于开发人员来说,最好的效果是一次编译打包后,可以在任何地方、任何时间、任何机器上让程序正确的运行,Docker就是这样子的一个强大的工具。

  • 快速部署

    使用 Docker ,开发人员可以将你的程序、环境打包成一个镜像;开发完成之后,测试和运维人员可以在任何安装了Docker的机器上,直接使用你的镜像一键部署你的应用。不用额外的测试、调试。

  • 更高效的资源利用

    Docker 是内核级的虚拟化,系统级别的虚拟化。可以实现更高的性能,与传统虚拟机相比性能能提高很多倍,具体对比,在下文提到

  • 更轻松的迁移扩展

    Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云 、个人电脑 、服务器等,同时支持主流的操作系统发行版本。这种兼容性让用户可以在不同平台之间轻松地迁移应用 。

Docker与虚拟机比较

  • Docker速度很快

    启动和停止一个应用,可以在秒级实现,而虚拟机则需要分钟级别。

  • Docker容器对系统资源的需求更小

    基本一台主机上运行上千个容器都不成问题。而虚拟机运行几十个可能就到瓶颈了。

  • Docker和Git有着类似的先进的设计理念

    用户可以制作镜像发布供别人使用,自己也可以在Docker Hub中获取到丰富的镜像。

  • Docker通过Dockerfile来自动化创建、配置应用。使用方便

Docker 容器除了运行其中的应用外, 基本不消耗额外的系统资源, 在保证应用性能的同 时,尽量减小系统开销 。 传统虚拟机方式运行 N 个不同的应用就要启用 N 个虚拟机(每个虚拟机需要单独分配独占的内存、磁盘等资源),而 Docker 只需要启动 N 个隔离得“很薄的”容器, 并将应用放进容器内即可 。 应用获得的是接近原生的运行性能。

特性容器虚拟机
启动速度秒级分钟级
性能接近原生较弱
内存代价很小较多
磁盘使用一般为MB一般为GB
运行密度单机支持上千个容器几十个
隔离性完全隔离完全隔离
迁移性优秀一般

总结

和传统的虚拟机方式相比,容器虚拟化方式在很多场景下都存在极为明显的优势。 在程序部署、管理等方面应用很广。用起来 真香!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值