容器技术

Docker网络模型

丶灬走出姿态 提交于 2019-11-30 09:47:11
Docker容器技术基于Linux Container实现的。在Linux Container中,包含用于隔离进程的Namespaces。在众多Namespace技术里,存在一个Network Namespace,每个被Network Namespace隔离的空间都拥有自己的网络设备、IP地址、路由表、防火墙、网络配置、端口表等,Docker正是借助这个东西实现了对容器网络的隔离。 那么具体实现呢: Namespace仅仅实现了网络的隔离,然而我们容器是需要与外界进行信息交流的。那么就由此出现了 虚拟网卡 veth-pair设备,这个设备是个虚拟网络通道,并且是成对出现的,用于连接两个网络终端: 但是我们宿主机运行的不止一个容器,要实现众多容器之间的通信,就要利用Bridge,网桥。Docker利用Bridge把veth-pair设备的一端全部连接在Bridge所构成的交换机中,把容器连接不同外部网络的任务通过veth-pair转移到了Bridge上。 默认Docker会创建一个docker0的虚拟网桥,连接在同一个网桥上的容器可以互相通信。通过ifconfig命令查看 当启动容器,宿主机执行ifconfig会成对出现veth*: 总结一下: Network Namespace :实现了网络资源的隔离。 Veth Pair :打通了网络隔离环境的数据传输通道。在Docker中

SpringBoot 如何打包部署

穿精又带淫゛_ 提交于 2019-11-30 09:34:50
Spring Boot 使用了内嵌容器,因此它的部署方式也变得非常简单灵活,一方面可以将 Spring Boot 项目打包成独立的 Jar 或者 War 包来运行,也可以单独打包成 War 包部署到 Tomcat 容器中运行,如果涉及到大规模的部署 Jinkins 就成为最佳选择之一。 Spring Boot 默认集成 Web 容器,启动方式和普通 Java 程序一样,main 函数入口启动,其内置 Tomcat 容器或 Jetty 容器,具体由配置来决定(默认 Tomcat)。 一、相关配置 1、多环境配置 在这里将介绍一下 Spring Boot 多环境配置文件,在我们开发过程中必定会面临多环境的问题,比如开发环境、测试环境、生产环境,在不同的环境下会有不同的数据库连接池等配置信息。如果都写在一个配置文件中,在不同的环境下启动需要手动修改对应的环境参数,这种方式容易出错且不够优雅。Spring Boot 支持多配置文件的使用,只需要启动时指定对应的配置文件即可。 首先在 pom.xml 中添加相关配置: <profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> <

Tomcat配置两个应用服务

佐手、 提交于 2019-11-30 09:30:55
https://blog.csdn.net/swq463/article/details/86660034 Apache与Tomcat 两者定位:Apache是HTTP Web服务器,Tomcat是Web容器 容器 (Containers) 容器通常理解就是装东西的,我们这里说 技术上的容器 就是 可以部署应用程序,并在上面运行的环境。 一般来说,它处理屏蔽了服务器平台的复杂性,使得应用程序在它的基础上可以方便快捷的部署; 对于应用程序来说,它就 是位于应用程序和平台之间的接口集合 。 容器管理组件的生命周期,向应用程序组件分派请求,并提供与上下文数据(如关于当前请求的信息)的接口。 Servlet的不同含义 Servlet(server applet) : 属于Java EE重要技术规范,构建了"接收请求--调用servlet程序处理--返回响应"基本模型。 Servlet 程序(public class UserServlet extends httpServlet) : Java提供了开发Servlet程序的API,该API可以说Servlet容器的一部分,它 对接应用程序与Servlet容器 ; Servlet 容器(Tomcat) : 就是实现了Servlet技术规范的部署环境,它 可以部署运行Servlet程序 。提供了 Servlet (server applet

Spring二次学习——1.Spring概述

試著忘記壹切 提交于 2019-11-30 09:00:26
1.1.1 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发 。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。 业务逻辑开发是不可避免的,那 如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系 。可能有人说了,比如“抽象工厂、工厂方法设计模式”不也可以帮我们创建对象,“生成器模式”帮我们处理对象间的依赖关系,不也能完成这些功能吗?可是这些又需要我们创建另一些工厂类、生成器类,我们又要而外管理这些类,增加了我们的负担,如果能有种通 过配置方式来创建对象,管理对象之间依赖关系,我们不需要通过工厂和生成器来创建及管理对象之间的依赖关系,这样我们是不是减少了许多工作,加速了开发,能节省出很多时间来干其他事 。Spring框架刚出来时主要就是来完成这个功能。 Spring框架除了帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,还能帮我管理最头疼的数据库事务,本身提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集成(如Hibernate、JPA

2019 DevOps 必备面试题——容器化和虚拟化

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-30 07:45:34
原文地址: https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君:CODING 戴维奥普斯 让我们看看你对容器和虚拟机的了解程度。 Q1. 什么是容器? 容器提供了从开发人员的笔记本电脑到测试环境、从类生产环境到生产环境一致的运行环境。 接下来给出容器的定义,容器由一个完整的运行环境组成:将一个应用程序,以及它所有的依赖项、库和其他二进制文件,以及运行它所需的配置文件打包到一起。将应用平台及其依赖项容器化,可以消除操作系统版本和底层基础架构间的差异。 Q2. 容器化相比虚拟化有哪些优势? 以下是容器化相对于虚拟化的优势: 容器提供实时资源调配和可拓展性,虚拟机提供的资源调配速度较慢 与虚拟机相比,容器是轻量级的 与容器相比,虚拟机的性能有限 与虚拟机相比,容器具有更好的资源利用率 Q3. 容器(在我们的例子中指 Docker)与管理程序虚拟化(vSphere)有何不同?有哪些好处? 以下是一些不同之处。请确保在你的回答中包含这些差异: Q4. 什么是 Docker 镜像? Docker 镜像是 Docker 容器的来源,换句话说,Docker 镜像用于创建容器。使用 build 命令创建镜像,当开始运行时,它们将生成一个容器。镜像存储在

Java基础 复习(7) Spring / Spring MVC

徘徊边缘 提交于 2019-11-30 05:47:06
Spring / Spring MVC 90. 为什么要使用 spring? 1.简介 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 2.轻量 从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 3.控制反转 Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 4.面向切面 Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 5.容器

Docker镜像创建、数据管理与网络通信

≡放荡痞女 提交于 2019-11-30 04:28:22
本章架构: Docker的创建方法 Docker的数据管理 Docker的网络通信 Docker镜像除了是Docker的核心技术之外,也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器后,就可以在容器中进行操作,最常见的操作技术在容器中安装应用服务,如果要把已经安装的服务进行迁移,就要把环境及搭建的服务生成新的镜像。下面介绍这三种创建镜像的方法: 一、Docker镜像的创建方法 1.基于已有镜像创建 基于已有镜像创建主要使用docker commit 命令。其实质就是把一个容器里面运行的程序及该程序的运行环境打包起来生成新的镜像。 命令格式: docker commit 【选项】容器id/名称 仓库名称:【标签】 常用选项: -m:说明信息 -a:作者信息 -p:生成过程中停止容器的运行 方法如下: (1)使用镜像创建一个新的容器,并进行修改。 [root@localhost ~]# docker images //查看本地的Docker镜像 REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest 0f3e07c0138f 6 weeks ago 220 MB [root@localhost ~]# docker run -

从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念

杀马特。学长 韩版系。学妹 提交于 2019-11-30 03:59:17
作者| 阿里巴巴资深技术专家、CNCF 9个 TCO 之一 李响 一、什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“K8s”,它是通过将 8 个字母“ubernete ”替换为“8”而导致的一个缩写。 Kubernetes 为什么要用“舵手”来命名呢?大家可以看一下这张图: 这是一艘载着一堆集装箱的轮船,轮船在大海上运着集装箱奔波,把集装箱送到它们该去的地方。我们之前其实介绍过一个概念叫做 container,container 这个英文单词也有另外的一个意思就是“集装箱”。Kubernetes 也就借着这个寓意,希望成为运送集装箱的一个轮船,来帮助我们管理这些集装箱,也就是管理这些容器。 这个就是为什么会选用 Kubernetes 这个词来代表这个项目的原因。更具体一点地来说:Kubernetes 是一个自动化的容器编排平台,它负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的。 二、Kubernetes 有如下几个核心的功能: 服务的发现与负载的均衡; 容器的自动装箱,我们也会把它叫做 scheduling,就是“调度”,把一个容器放到一个集群的某一个机器上,Kubernetes

Docker容器之如何从阿里云拉取镜像

南楼画角 提交于 2019-11-30 03:42:59
一、如何从阿里云联网拉取镜像 镜像用来创建容器 , 是容器的只读模板 , 默认可以从 docker hub 上下载。docker 的镜像是 增量修改 , 每次创建新的镜像都会在父镜像上构建一个增量的层 , 基于 AUFS 技术。 # docker search 查询镜像 # docker pull 拉取镜像 # docker push 推送镜像 镜像默认可以从 docker hub 上下载 , 这是 docker 官方的公共仓库 , 为我们免费提供了大量 已经容器化的应用镜像 , 避免我们重复的去造轮子。但是官方并没有在国内部署服务器 , 如果你不走 vpn 的话真的是太慢了 , 报错和超时让人非常的郁闷。 我们可以使用阿里云进行镜像加速直接下载镜像。 我们可以直接登录阿里云注册一个账号(注册过程就不再说明) 点击控制台——>产品与服务——>弹性计算——>容器镜像管理 看到自己专有的镜像加速器: 根据官方文档进行配置 [ root@foundation19 ~ ] # cd / etc / docker / [ root@foundation19 docker ] # ls key . json [ root@foundation19 docker ] # vim daemon . json { "registry-mirrors" : [ "https://iwpfe8zv

Linux环境基于CentOS7 搭建部署Docker容器

强颜欢笑 提交于 2019-11-30 03:40:33
1.Docker容器概述 区分Docker容器技术和VM虚拟机技术: evernotecid://394EFE90-9CE0-4D65-A8CD-DFEC0DC8061E/appyinxiangcom/11359837/ENResource/p1872 Docker容器技术 [Container]:容器虚拟化技术 evernotecid://394EFE90-9CE0-4D65-A8CD-DFEC0DC8061E/appyinxiangcom/11359837/ENResource/p1873 VM虚拟机技术[Virtual Machine]:传统虚拟化技术 evernotecid://394EFE90-9CE0-4D65-A8CD-DFEC0DC8061E/appyinxiangcom/11359837/ENResource/p1873 主要区别是: [1] 容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离。 [2] 虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。 [3] 容器使用宿主操作系统的内核,而虚拟机使用独立的内核 容器的好处 1.2.0 容器 Docker容器发行版本: Docker CE(社区版):免费开源版本-Docker Engine Docker EE(企业版):商用收费版本-Docker Data Center Docker容器安装环境: