群辉做网站服务器python,视频网站用什么做的,一键提交各大收录,网站备案号被注销什么原因1.什么是 Docker
1.1 官方定义
最新官网首页
# 1.官方介绍
- We have a complete container solution for you - no matter who you are and where you are on your containerization journey.
- 翻译: 我们为你提供了一个完整的容器解决方案,不管你是谁,不管你在哪,你都可以…1.什么是 Docker
1.1 官方定义
最新官网首页
# 1.官方介绍
- We have a complete container solution for you - no matter who you are and where you are on your containerization journey.
- 翻译: 我们为你提供了一个完整的容器解决方案,不管你是谁,不管你在哪,你都可以开始容器的的旅程。
- 官方定义: docker是一个容器技术。1.2 Docker的起源
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目它是基于 dotCloud 公司多年云服务技术的一次革新并于 2013 年 3 月以 Apache 2.0 授权协议开源主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会并成立推动 开放容器联盟OCI。Docker 自开源后受到广泛的关注和讨论至今其 GitHub 项目 已经超过 5 万 7 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆在 2013 年底dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持Google 也在其 PaaS 产品中广泛应用 Docker。Docker 使用 Google 公司推出的 Go 语言 进行开发实现基于 Linux 内核的 cgroupnamespace以及 OverlayFS 类的 Union FS 等技术对进程进行封装隔离属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程因此也称其为容器。2.为什么是Docker 在开发的时候在本机测试环境可以跑生产环境跑不起来 这里我们拿java Web应用程序举例我们一个java Web应用程序涉及很多东西比如jdk、tomcat、mysql等软件环境。当这些其中某一项版本不一致的时候可能就会导致应用程序跑不起来这种情况。Docker则将程序以及使用软件环境直接打包在一起无论在那个机器上保证了环境一致。 优势1: 一致的运行环境,更轻松的迁移 服务器自己的程序挂了结果发现是别人程序出了问题把内存吃完了自己程序因为内存不够就挂了 这种也是一种比较常见的情况如果你的程序重要性不是特别高的话公司基本上不可能让你的程序独享一台服务器的这时候你的服务器就会跟公司其他人的程序共享一台服务器所以不可避免地就会受到其他程序的干扰导致自己的程序出现问题。Docker就很好解决了环境隔离的问题别人程序不会影响到自己的程序。 优势2对进程进行封装隔离,容器与容器之间互不影响,更高效的利用系统资源 公司要弄一个活动可能会有大量的流量进来公司需要再多部署几十台服务器 在没有Docker的情况下要在几天内部署几十台服务器这对运维来说是一件非常折磨人的事而且每台服务器的环境还不一定一样就会出现各种问题最后部署地头皮发麻。用Docker的话我只需要将程序打包到镜像你要多少台服务我就给力跑多少容器极大地提高了部署效率。 优势3: 通过镜像复制N多个环境一致容器 3.Docker和虚拟机区别 关于Docker与虚拟机的区别我在网上找到的一张图非常直观形象地展示出来话不多说直接上图。 比较上面两张图我们发现虚拟机是携带操作系统本身很小的应用程序却因为携带了操作系统而变得非常大很笨重。Docker是不携带操作系统的所以Docker的应用就非常的轻巧。另外在调用宿主机的CPU、磁盘等等这些资源的时候拿内存举例虚拟机是利用Hypervisor去虚拟化内存整个调用过程是虚拟内存-虚拟物理内存-真正物理内存但是Docker是利用Docker Engine去调用宿主的的资源这时候过程是虚拟内存-真正物理内存。
传统虚拟机Docker容器磁盘占用几个GB到几十个GB左右几十MB到几百MB左右CPU内存占用虚拟操作系统非常占用CPU和内存Docker引擎占用极低启动速度从开机到运行项目几分钟从开启容器到运行项目几秒安装管理需要专门的运维技术安装、管理方便应用部署每次部署都费时费力从第二次部署开始轻松简捷耦合性多个应用服务安装到一起容易互相影响每个应用服务一个容器达成隔离系统依赖无需求相同或相似的内核目前推荐是Linux