容器技术

Docker 网络基础介绍

有些话、适合烂在心里 提交于 2019-11-28 18:25:28
【编者按】本文作者为 Mesos phere 开发大使 Michael Hausenblas,主要介绍配置 Docker 单主机网络的基本知识。文章系国内 ITOM 管理平台 OneAPM 编译呈现。 想要了解有关 Docker 网络的更多信息,包括多主机网络介绍,请查看本文作者 Michael Hausenblas 撰写的报告——《Docker 网络与服务探索》, 点此下载该报告 。 当你开始扩大 Docker 的应用范围时,忽然发现,你需要了解很多关于网络的知识。作为 Docker 网络的入门介绍,本文将从小处着手,首先你要考虑如何管理容器之间的连接。Docker 容器需要有个主机才能运行,该主机既可以是实体机器(例如:企业数据中心的裸机服务器),也可以是 on-prem 或云中的虚拟机。如图一所示,主机上会运行 Docker 后台程序与 Docker 客户端。一方面,你可以与 Docker 注册表交互(pull 或 push Docker 图片);另一方面,也可以启动、停止或监视容器。 图片1. 简化版 Docker 架构(单主机) 主机与容器之间的关系为 1:N 。也就是说,一个主机上通常会运行着多个容器。例如,Facebook 报告称,取决于机器的规模,每个主机上平均运行着10到40个容器。此外,Mesosphere 对裸机进行的多项负载测试结果显示

JDBC_数据库连接池c3p0

ぃ、小莉子 提交于 2019-11-28 17:38:08
1 /** 2 * @Description: TODO(这里用一句话描述这个类的作用) 3 * @Author aikang 4 * @Date 2019/8/26 20:12 5 */ 6 /* 7 1.数据库连接池: 8 1.概念:其实就是一个容器(集合),存放数据库连接的容器 9 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完后将连接对象归还容器 10 2.好处: 11 1.节约资源 12 2.用户访问高效 13 3.实现: 14 1.标准接口:DataSource javax.sql包下的 15 1.方法: 16 获取连接:getConnection() 17 归还连接:如果连接对象Connection是从连接池中获取的,name调用Connection.close()方法,则不会再关闭连接了,而是归还连接 18 2.一般我们不去实现它,由数据库厂商来实现 19 1.c3p0:数据库连接池技术 20 1.步骤: 21 1.导入jar包,两个 22 2.定义配置文件: 23 名称:c3p0.properties or c3p0-config.xml 24 路径:直接将文件放在src目录下即可 25 3.创建核心对象:数据库连接池对象ComboPooledDataSource 26 4.获取连接

【Docker入门篇】

隐身守侯 提交于 2019-11-28 17:30:23
目录 Linux容器 Docker的优势 Docker三大概念 安装使用Docker 补充知识 原文: http://blog.gqylpy.com/gqy/327 @ *** 所谓Docker Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,于2013年3月以Apache2.0授权协议开源,主要项目代码在GitHub上进行维护. Docker使用Google公司推出的GO语言进行开发实现. Docker是Linux容器的一种封装,提供简单易用的容器使用接口,它是最流行的Linux容器解决方案. Docker的接口相当简单,用户可以方便的创建、消费容器. Docker将应用程序与程序的依赖打包在一个文件内,运行这个文件就会生成一个虚拟容器. 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了Docker,就不用担心环境问题了. Docker应用场景 web应用的自动化打包和发布. 自动化测试和持续集成、发布. 在服务型环境中部署和调整数据库或其它应用. *** Linux容器 由于虚拟机的诸多问题,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,缩写LXC). . Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套了一个保护层,对于容器里面的进程来说

Spring容器技术内幕之BeanDefinition类介绍

谁都会走 提交于 2019-11-28 17:10:12
引言 org.springframework.beans.factory.config.BeanDefinition是配置文件< bean >元素标签在容器中地内部表示。< bean >元素标签拥有class、scope、lazy-init等配置属性,BeanDefinition则提供了相应地beanClass、scope、lazyInit类属性,BeanDefinition就像< bean >中镜中人,二者是一一对应地。 实现类 RottBeanDefinition是最常用地实现类,它对应一般性地< bean > 元素标签。我们知道,在配置文件中可以定义父< bean >和子< bean >,父< bean >用RootBeanDefiniton表示,子< bean >用ChildBeanDefinition表示,而没有父< bean >的< bean >则用RootBeanDefinition表示。AbstractBeanDefintion对二者共同的类信息进行抽象。 Spring配置文件通过BeanDefintion将配置文件中的< bean >配置信息转换为容器的内部表示,并将这些BeanDefinition注册到BeanDefinitionRegistry中。Spring容器的BeanDefintionRegistry就像Spring配置信息的内存数据库

Docker从入门到动手实践

╄→尐↘猪︶ㄣ 提交于 2019-11-28 17:05:02
一些理论知识,我这里就不累赘了 docker 入门资料,参考: https://yeasy.gitbooks.io/docker_practice/content/ Dockerfile常用命令,图片来源于网络 Dockerfile 打包控制台应用程序 新建一个控制台程序,控制台程序添加一个文本文件,去掉.txt 扩展名,改成Dockerfile 输入以下代码 FROM microsoft/dotnet:sdk AS build WORKDIR /code COPY *.csproj /code RUN dotnet restore COPY . /code RUN dotnet publish -c Release -o out FROM microsoft/dotnet:runtime WORKDIR /app COPY --from=build /code/out /app ENTRYPOINT ["dotnet","console.dll"] Program.cs 中编写测试代码 一切准备完成。就是build把项目打包成镜像了 切换到当前项目路径下。输入: docker build -t cn/console:v1 . docker build -t :是打包固有的命令 cn/console:v1 : cn:是组织名称或者说是用户名,如果你想把自己的镜像push到hub

Docker

假装没事ソ 提交于 2019-11-28 16:36:58
1、简介 Docker 是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。 2、核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像; docker镜像(Images):软件打包好的镜像;放在docker仓库中; docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。 使用Docker的步骤: 1)、安装Docker 2)、去Docker仓库找到这个软件对应的镜像; 3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器; 4)、对容器的启动停止就是对软件的启动停止; 5)、多次运行同一个镜像,即产生多个容器( 软件多开) 3、安装Docker 安装linux虚拟机 ​ 1)、VMWorkStations; ​ 2)、安装 Linux 操作系统 ; ​ 3)、使用客户端连接linux服务器进行命令操作; ​ 4)、设置虚拟机网络; ​ 桥接网络===选好网卡===

走近Spring

蓝咒 提交于 2019-11-28 15:20:41
在Spring框架之前,J2EE为主流的企业级应用开发工具,EJB的学习成本很高,开发效率却不高,需要编写很多重复的代码,这些问题阻止了EJB的继续发展。在这种情况下,Spring应运而生,Spring框架和EJB不同,Spring框架的学习成本非常低,它是一个轻量级的开发框架,更多强调面向对象的设计,而不是让现有的技术变得更复杂。 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 Spring的核心思想 1、控制反转(IOC) IOC是一种设计思想,将原本在程序中手动创建的对象的控制权,交由Spring框架来管理,根据配置文件 创建及组装对象之间的依赖关系。 举个例子: 在现实生活中,人们要用到一样东西的时候,第一反应就是去找到这件东西,比如想喝新鲜橙汁,在没有饮品店的日子里,最直观的做法就是:买果汁机、买橙子,然后准备开水。值得注意的是:这些都是你自己 “主动”创造 的过程,也就是说一杯橙汁需要你自己创造。 然而到了今时今日,由于饮品店的盛行,当我们想喝橙汁时,第一想法就转换成了找到饮品店的联系方式,通过电话等渠道描述你的需要、地址、联系方式等,下订单等待,过一会儿就会有人送来橙汁了。 DI(Dependency Injection),依赖注入,和控制反转(IOC)实现的功能时相同的,核心作用是为了减少代码组件之间的耦合度。 依赖注入有三种方式:

Docker总结

拟墨画扇 提交于 2019-11-28 15:16:47
1. Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口 (类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker 的应用场景 Web 应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他的后台应用 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS (Platform-as-a-Service) 环境 简化程序:Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。 避免选择恐惧症:如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker

快速掌握Docker必备基础知识

强颜欢笑 提交于 2019-11-28 14:45:18
快速掌握Docker必备基础知识 Docker 是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把 Docker 理解为一个轻量级虚拟机,但其实 Docker 与虚拟机( VM )是两种不同的计算机虚拟化技术,也有很多人会觉得,有了虚拟机,那为什么还要使用 Docker 呢? 带着心里的一点点疑问,让我们一起来学习 Docker 吧。 没有虚拟化技术的原始年代 我们仔细想想,在没有计算虚拟化技术的“远古”年代,如果我们要部署一个应用程序( Application ),一般的步骤是怎么样的? 第一步肯定是先要准备一台物理服务器,然后在物理服务器上安装一个操作系统( Operating System ),有了操作系统之后,便在操作系统上安装运行我们的应用程序,这个过程可以用下面的图来表示: 物理服务器部署应用示意图 那么,这种方式有什么问题呢?其实,在物理机上部署应用有以下几个缺点: 部署非常慢:因为我们得先准备硬件服务器,接着还要安装操作系统,然后再部署应用程序,而且应用程序还有很多的依赖软件,所以这个过程是比较慢的。 成本非常高:主要是物理器成本太高,即使是部署一个简单的应用,也需要一台服务器。 资源浪费:如果应用太简单,也容易浪费硬件资源,比如 CPU 和内存 迁移和扩展太慢:如果需要迁移应用,或者扩展应用,都要再准备其他的物理服务器,过程很麻烦

Docker 零基础从入门到使用

纵饮孤独 提交于 2019-11-28 14:43:58
诺!这只可爱的小鲸鱼就是docker了! 文章目录 Docker 是什么? Docker 能干什么? 先来个需求 有Docker组 VS 无Dokcer组 Docker 入门 结尾语 Docker 是什么? Docker 是一个引擎 , Docker 是一个应用容器引擎 , Docker 是一个开源的应用容器引擎 , 他可以将开发的应用生成镜像,然后发布到任何系统上运行。 Docker 能干什么? 在讲 Docker 能干什么之前,我们不妨先看看没有 Docker 和有Docker分别是个什么样子的? 先来个需求 某公司需要开发一个管理系统,由于业务数据量庞大,需要对每个模块进行独立化。 比如:将订单管理抽出为一个单独的系统,支付管理抽出为一个单独的系统,会员管理也抽为一个单独的系统,以此类推等等。 那么,要实现用户下单支付这个逻辑,那么首先需要调用会员管理的相关接口进行登录,调用订单管理的相关借口进行下单,调用支付管理进行支付。这几个模块共同工作才构成了我们一个下单支付的功能。这就是我们常说的分布式微服务系统。 他和传统的单一模式的区别就是:将整个项目进行了模块划分,以前老一辈项目都是将会员,订单,支付等系统都集合在一个项目中,这样十分不利于后期项目的扩展。 有Docker组 VS 无Dokcer组 为了方便叙述,我们将有无使用Docker分为 有Docker组和无Docker组