容器技术

docker基础入门之一

早过忘川 提交于 2020-01-01 13:22:20
一、概述   1、传统虚拟化技术:      纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统;      硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率;     解决方案:       商业版解决方案:VMware vSphere、 VMware Fusion       开源解决方案:KVM、Xen   2、system-level虚拟化(container虚拟机技术):      不需要模拟硬件层;      共享同一个HOST OS的Kernal      user space instance = Container              解决方案:       LXC:       OpenVZ:       Docker:       Imctfy:google开源的容器虚拟实现   3、容器虚拟化和传统虚拟化的区别: 传统虚拟化 容器虚拟化 创建速度 很慢 非常快 性能影响 通过对于硬件层的模拟,增加了系统调用链路 的环节,有性能损耗 共享Kernel,几乎没有性能损耗 资源消耗 很大  很小,一台机器可以轻松创建多个 Container 操作系统覆盖 支持Linux、windows、Mac等 仅仅支持Kernal所支持的OS   4、container核心技术cgroups,namespace

Docker -- 系统整洁之道 -- 0

爷,独闯天下 提交于 2020-01-01 13:21:19
在我的小 rmbp 256G的硬盘里,实在是装不下100多个G的虚拟机了,所以想把一些东西迁移到这两年很火的Docker下,Docker以前也有过一两次,只是按着别人给的用法用的,具体的一些细节并没有深入,和git一样,这么牛掰的东西怎么能不好好学一些呢? Docker和虚拟机的区别 Docker是一种容器,虚拟机是一种管理程序虚拟机化(hypervisor virtualization,HV)。管理程序虚拟化通过中间层将一台或者多台独立的机器虚拟运行在物理硬件之上,而容器(比如Docker)则是直接运行在操作系统内核之上的用户空间。由于容器是运行在操作系统上的,所以只能运行底层和宿主机相同或者类似的操作系统,比如说在Ubuntu下可以在容器里运行Centos,却不能运行Windows。 目前Windows上的Docker可以跑Linux的Docker容器,是因为底下跑了Linux的VM,但是马上就可以支持Windows Server 2016了,如链接[Introducing the Technical Preview of Docker Engine for Windows Server 2016]( http://Introducing the Technical Preview of Docker Engine for Windows Server 2016)。 容器的优点

docker知识点总结

旧巷老猫 提交于 2020-01-01 13:14:56
docker简介 docker是什么 问题:为什么会有docker出现 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验 Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。 环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。 之前在服务器配置一个应用的运行环境,要安装各种软件。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。 传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得以部署应用程式,开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。Docker镜像的设计

Docker02-重要概念

瘦欲@ 提交于 2020-01-01 13:13:54
目录 Docker简介 思考 Docker是什么 Docker 解决了什么问题 Docker 的优点 Docker的目的 Docker常用场景 虚拟化和Docker的对比 Docker的架构 Docker简介 思考 思考一: 我们之前是如何将项目发布到Linux服务器的? 大致步骤如下 安装jdk 安装tomcat 将项目war包上传到tomcat的webapps下 修改配置文件 启动tomcat 这样看似没问题,其实我们想想,发一台机器还好,这几步就完成了。如果我们要将这个项目发布到N多台机器,那么我们是否需要再每个机器上都进行相同的步骤?并且要进行环境兼容性的测试。 思考二: 再来看一个例子,我们现在是想部署一个成熟的产品,这个产品是go语言开发的,我们该如何部署?go语言运行的环境怎么装,这个项目又该如何部署? 思考三: 一台linux机器上装了很多软件,部署了很多项目,相互之间有干扰怎么办? Docker是什么 Docker是以容器技术为核心的一套应用的构建,分发,执行的体系和生态。 Docker 解决了什么问题 程序在我这里跑的好好的,在你那怎么不行了?(环境与程序打包交付) 系统好卡,是哪个进程把CPU吃光了?(容器之间沙箱隔离) 这套系统我已经搭建好了,要不你再重新搭一遍?(一次构建,到处运行) Docker 的优点 更快速的交付和部署 对开发和运维来说

docker镜像的操作

落爺英雄遲暮 提交于 2020-01-01 13:05:09
在主机上列出镜像 sudo docker images 每从 Docker Hub 下载一个镜像就会启动相对的创建一个容器 在镜像列表中看到三个重要的东西: 来自什么镜像源,例如 ubuntu 每个镜像都有标签,例如 14.04 每个镜像都有镜像ID 运行一个带标签镜像的容器: sudo docker run -t -i ubuntu:14.04 /bin/bash 如果不指定一个镜像的版本标签,例如你只使用 Ubuntu ,Docker将默认使用 Ubuntu:latest 镜像 建议使用镜像时指定一个标签 获取一个新的镜像 用 docker pull 命令来下载 sudo docker pull centos 注:有时候下载比较慢,可以使用国内第三方库下载 sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04 查找镜像 可以去网上的查找docker hub 的镜像 或者使用命令行 sudo docker search sinatra 可以看到列表中有镜像名称、描述、Stars(衡量镜像的流行度-如果用户喜欢这个镜像他就会点击stars)和官方自动构建镜像状态 Stackbrew维护者官方仓库源,镜像源是自动构建的,可以验证图像的来源和内容 两种类型的镜像,像 ubuntu 镜像,我们称它为基础镜像或者根镜像

Linux相关知识练习02

拥有回忆 提交于 2020-01-01 01:21:08
Linux相关知识练习 每日几题 1.命令 iostat 的各项指标的含义,哪些项体现iops ,哪些体现吞吐量,await 和svctm两项数据差别大(当await 远大于svctm)说明什么问题?当%util接近或大于100%,说明什么? 假如我的机器有很多磁盘分区,要求只监控其中某一个比如sda,每秒采集一次,并打印时间,共采集一分钟。 iostat用于输出 CPU 和磁盘 I / O 相关的统计信息。 用法:iostat [ 选项 ] [ < 时间间隔 > [ < 次数 > ] ] 常用选项说明: - c:只显示系统 CPU 统计信息,即单独输出avg - cpu结果,不包括device结果 - d:单独输出Device结果,不包括cpu结果 - k / - m:输出结果以kB / mB为单位,而不是以扇区数为单位 - x : 输出更详细的io设备统计信息 interval / count:每次输出间隔时间,count表示输出次数,不带count表示循环输出 iostat,结果为从系统开机到当前执行时刻的统计信息 avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。重点关注iowait值,表示CPU用于等待io请求的完成时间。 iostat -c #只显示cpu统计信息,即单独输出avg-cpu结果,不包括device结果 iostat

黑马程序员C++教程从0到1入门--STL标准库

丶灬走出姿态 提交于 2019-12-31 10:59:13
黑马程序员C++教程从0到1入门--STL标准库 STL 组件 STL基本结构 STL 组件 STL 是 C++ 标准程序库的核心。STL 内的所有组件都由模板构成,其元素可以是任意型别。程序员通过选用恰当的群集类别调用其成员函数和算法中的数据即可。 STL 组件主要包括容器,迭代器、算法和仿函数。 容器 容器即用来存储并管理某类对象的集合。例如鱼缸是用来盛放金鱼的容器。 在 STL 中,容器又分为序列式容器和关联式容器两大类,而迭代器的功能主要是遍历容器内全部或部分元素的对象。迭代器可划分为 5 种类属,这 5 种类属归属两种类型:双向迭代器和随机存取迭代器。 每一种容器都有其优点和缺点。为满足程序的各种需求,STL 准备了多种容器类型,容器可以是 arrays 或是 linked lists,或者每个元素有特别的键值。 迭代器 迭代器用于在一个对象群集的元素上进行遍历动作。对象群集可能是容器,也可能是容器的一部分。 迭代器的主要用途是为容器提供一组很小的公共接口。利用这个接口,某项操作可以行进至群集内的下一个元素。 每种容器都提供了各自的迭代器。迭代器了解该容器的内部结构,所以能够正确行进。迭代器的接口和一般指针类似。 算法 算法用来处理群集内的元素,可以出于不同目的搜寻、排序、修改、使用那些元素。所有容器的迭代器都提供一致的接口,通过迭代器的协助,算法程序可以用于任意容器。

docker基础

时光总嘲笑我的痴心妄想 提交于 2019-12-31 10:11:33
dicker 1.docker产生解决了什么问题? docker实现了软件带环境安装,也就是说安装的时候,把原始环境一模一样的复制过来,解决了”在我的机器上可以运行“的问题。使得用户的APP以及其运行环境能做到”一次封装,到处运行“–”build,ship and run any app,anywhere“。 总的来说,docker解决了运行环境和配置的问题 2.docker图标长这个样子? 上面一个个小块隔离,地下一个鲸鱼,也就是说比如:你的项目需要Redis,mysql这样的多个配置,既然你开发已经在本地把环境建好了,项目也可以跑成功,那么就把这多个不同的环境分别打包,每一个软件就是一个单独的集装箱,然后我们利用docker,也就是用一个的大的镜像全部把多个环境打包后,再把代码和镜像一起给运维进行部署。 3.docker三要素:仓库、镜像、容器 4.docker和虚拟机 (1)虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统里运行另一种操作系统,它看上去就跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。 虚拟机缺点:1.资源占用多 2.冗余步骤多 3.启动慢 (2)二者对比 传统阻尼及技术是虚拟出一探硬件后,在其上运行一个完整的操作系统,在该系统上在运行所需应用进程。 而docker(Linux 容器

Docker介绍

天涯浪子 提交于 2019-12-31 00:41:54
Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注。如果你关注最新的技术发展,那么你一定听说过 Docker。不管是云服务还是微服务(Microservices),越来越多的厂商都开始基于 Docker 作为基础设施自动化的工具。那么什么是 Docker?Docker与传统的虚拟机有什么区别?为何要采用 Docker?如何使用 Docker? 本文,就针对上述提到的问题,来简单介绍下 Docker。 什么是 Docker Docker 是开源的应用容器引擎。 Docker 可以让你将所有应用软件以及它的以来打包成软件开发的标准化单元。 Docker 容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像 Java 虚拟机一样,“一次编写,到处运行(Write once, run anywhere)”,而 Docker 是“一次构建,到处运行(Build once,run anywhere)”。 Docker 是一种“容器即服务”(Docker Containers as a Service ,简称 CaaS),使得开发和IT运营团队可以对于应用的构建、发布、运行更加敏捷和可控。 概况的说: Docker 是为开发人员和系统管理员用于构建、发布

Spring详解(一)------概述

余生颓废 提交于 2019-12-30 16:15:09
  本系列教程我们将对 Spring 进行详解的介绍,相信你在看完后一定能够有所收获。 1、什么是 Spring ?   Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。    简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。 2、Spring 起源   Rod Johnson 在2002年编著的《Expert one on one J2EE design and development》一书中,对Java EE 系统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新Spring Logo之道