Docker简介

思考

思考一:
我们之前是如何将项目发布到Linux服务器的?
大致步骤如下

  1. 安装jdk
  2. 安装tomcat
  3. 将项目war包上传到tomcat的webapps下
  4. 修改配置文件
  5. 启动tomcat

这样看似没问题,其实我们想想,发一台机器还好,这几步就完成了。如果我们要将这个项目发布到N多台机器,那么我们是否需要再每个机器上都进行相同的步骤?并且要进行环境兼容性的测试。


思考二:
再来看一个例子,我们现在是想部署一个成熟的产品,这个产品是go语言开发的,我们该如何部署?go语言运行的环境怎么装,这个项目又该如何部署?


思考三:
一台linux机器上装了很多软件,部署了很多项目,相互之间有干扰怎么办?


Docker是什么

Docker是以容器技术为核心的一套应用的构建,分发,执行的体系和生态。

Docker 解决了什么问题

  • 程序在我这里跑的好好的,在你那怎么不行了?(环境与程序打包交付)
  • 系统好卡,是哪个进程把CPU吃光了?(容器之间沙箱隔离)
  • 这套系统我已经搭建好了,要不你再重新搭一遍?(一次构建,到处运行)

Docker 的优点

  • 更快速的交付和部署
    对开发和运维来说,最希望的是一次构建或配置,可以在任意地方正常运行。
    例如:开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker容器很轻很快,容器的启动时间是秒级的,大量地节约开发,测试,部署的时间,并且解决开发环境和生产环境不一致的问题。
  • 更轻松的迁移和扩展
    Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等,这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。
  • 更高的资源利用率
    Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器,容器除了运行其中的应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。

Docker的目的

  • 集装箱:变革了人类整个的生产流程体系,让货物全世界流通
  • Docker:变革了IT领域的软件交付方式,让IT之间的鸿沟消失

:-: 目标:简化部署流程,提高生产力

Docker常用场景

  • 构建DevOps流程,实现运维的自动化
  • 企业私有的PAAS平台,降低开发成本,提升效率
  • 企业级AppStore,统一的后端系统分发平台
  • 间歇式计算任务
  • 构建微服务架构

虚拟化和Docker的对比

Docker的架构

Docker daemon(Docker 进程)
Docker进程是部署在linux操作系统上,负责支撑Docker Container(容器)的运行以及本地Image(镜像)的管理。

Docker Client
用户不直接操作Docker daemon,用户通过Docker client访问Docker,Docker client提供pull,build,run等操作命令。

Docker Images
Docker 镜像,就是一个只读的模板。
例如一个镜像可以包含一个完整的linux操作系统环境,里面安装了用户需要的应用程序。
镜像可以用来创建Docker容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以从其他人那里下载一个已经做好的镜像来直接使用。

Docker Containers
Docker 容器,是镜像的一个运行实例。
Docker 是利用容器来运行应用的,它可以被启动、开始、停止、删除。每个容器都是互相隔离的,保证安全的平台。可以把容器看做是一个简易版的linux环境和运行在其中的应用程序。

Docker Registry
仓库分为公开仓库和私有仓库两种形式。
最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载;用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或私有仓库,这样其他人只需要从仓库上pull下来就可以了。


:-:
微信扫一扫,关注“python测试开发圈”,了解更多测试教程!

Docker02-重要概念的更多相关文章

  1. 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念

    一.前言     DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...

  2. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  3. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  4. 声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS

    需要做个音频的PPM表,看着一堆的音频术语真是懵了,苦苦在网上扒了几天的文档,终于有了点收获,下面关于声音的分贝做个总结. 分贝 Decibel 分贝(dB)是一个对数单位(logarithmic u ...

  5. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  6. 【Linux大系】Linux的概念与体系

    感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei 我在这一系列文章中阐述Linux的基 本概念.Linux操作系统继承自UNIX.一个操作系统是一套控制和使用计算 ...

  7. KOTLIN开发语言文档(官方文档) -- 2.基本概念

    网页链接:https://kotlinlang.org/docs/reference/basic-types.html 2.   基本概念 2.1.  基本类型 从可以在任何变量处理调用成员函数和属性 ...

  8. .NET面试题系列[5] - 垃圾回收:概念与策略

    面试出现频率:经常出现,但通常不会问的十分深入.通常来说,看完我这篇文章就足够应付面试了.面试时主要考察垃圾回收的基本概念,标记-压缩算法,以及对于微软的垃圾回收模板的理解.知道什么时候需要继承IDi ...

  9. 《徐徐道来话Java》(1):泛型的基本概念

    泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...

  10. 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

随机推荐

  1. Jenkins build 后 tomcat 启不来

    Jenkins build 后 war 包复制到 tomcat 下,启不来 添加 :export BUILD_ID=dontKillMe /usr/local/iron/tomcat8085/bin/ ...

  2. 玩转Linux

    玩转Linux操作系统 说明:本文中对Linux命令的讲解都是基于名为CentOS的Linux发行版本,我自己使用的是阿里云服务器,系统版本为CentOS Linux release 7.6.1810 ...

  3. ufw防火墙规则不生效

    正式站系统是Ubuntu 16.04.6 一.今天一个项目有百度爬出,在nginx中封掉还在一直爬取,都403还不停爬取 二.在uwf封掉爬出ip,想封掉80端口没有用,然后封掉整个网段还是没有用,尴 ...

  4. mysql 安装为服务 ,mysql.zip 安装为服务,mysql搬移迁移服务器安装为服务

    从服务器A打包到服务器B后,在服务器B中运行安装服务命令,可自定义服务名,一台服务器上可装N个MySql实例 mysqld --install MySQL_0001 --defaults-file=D ...

  5. Android MVP模式简单介绍:以一个登陆流程为例

    老的项目用的MVC的模式,最近完成了全部重构成MVP模式的工作,虽然比较麻烦,好处是代码逻辑更加清楚.简洁,流程更加清晰,对于后续版本迭代维护都挺方便.对于一些想要学习MVP模式的同学来讲,百度搜出来 ...

  6. ConcurrentHashMap多线程下比HashTable效率更高

    HashTable使用一把锁处理并发问题,当有多个线程访问时,需要多个线程竞争一把锁,导致阻塞 ConcurrentHashMap则使用分段,相当于把一个HashMap分成多个,然后每个部分分配一把锁 ...

  7. es内存不够

    8核32G 3台 ELS机器,当时只给es配置了8G内存,es的总体数据量大小将近30G(查看GET /_cat/shards?v)

  8. redis常用命令及持久化机制

    redis  常用命令 查找redis服务文件 find / -name  redis-server 查找配置文件 find / -name redis.conf 启动服务时候,要指定配置文件 启动r ...

  9. 纪一次线上cms调优

    过去也有对JAVA性能调优的分析,有过以下case: 1. JVM outOfMemory, 主要是使用jmap dump 出来 hprof,使用MAT进行分析 2. JVM outOfMemory, ...

  10. Python之路【第二十九篇】:django ORM模型层

    ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...