容器技术

Docker简介

巧了我就是萌 提交于 2019-12-05 00:14:59
目录 Docker简介 是什么? 为什么会有docker的出现 docker理念 一句话总结 能干吗? 之前的虚拟机技术 容器虚拟化技术 开发/运维 -- 一次构建、随处运行 去哪下 官网 仓库 Docker简介 俗话说:工欲善其事必先利其器,知其然知其所以然,学习一个技术,需要掌握它的背景知识,技术无非就是条条框框的代码命令而已,但是需要明白它到底是什么,是有含义,有什么背景。就像足球,永远不打好基础,永远不搞懂足球理念。只会一步步的输下去。 是什么? 为什么会有docker的出现 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验 Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。 环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。 之前在服务器配置一个应用的运行环境,要安装各种软件,就拿正常工作的环境来说吧,Java/Tomcat/MySQL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了

docker

混江龙づ霸主 提交于 2019-12-04 20:01:41
内容来自 https://www.cnblogs.com/zeq912/p/11880467.html docker初解 1 什么是容器 容器就是在隔离的环境中运行的一个进程,如果进程停止,容器就会退出。 隔离的环境拥有自己的系统文件,ip地址,主机名等 容器是一种软件打包技术 程序:代码,命令 进程:正在运行的程序 容器的系统文件就是宿主机的某一个目录 2 容器和虚拟化的区别 区别: kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程) 容器:共用宿主机内核,第一个进程直接启动服务 优势: 容器:共用宿主机内核,轻量级,损耗少,启动快,性能高,只能运行在linux系统上 虚拟机:需要硬件的支持,需要模拟硬件,需要走开机启动流程,可以运行不同的操作系统 3 容器技术的发展过程 3.1 chroot技术 新建一个子系统(拥有自己完整的系统文件) 参考资料:https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/ 使用chroot监狱限制SSH用户访问指定目录和使用指定命令(cp,ls) https://linux.cn/article-8313-1.html 3.2 lxc linux container (namespaces:命名空间 隔离环境 及cgroups 进程资源限制)

docker初解

房东的猫 提交于 2019-12-04 19:58:16
1 什么是容器 容器就是在隔离的环境中运行的一个进程,如果进程停止,容器就会退出。 隔离的环境拥有自己的系统文件,ip地址,主机名等 容器是一种软件打包技术 程序:代码,命令 进程:正在运行的程序 容器的系统文件就是宿主机的某一个目录 2 容器和虚拟化的区别 区别: kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程) 容器:共用宿主机内核,第一个进程直接启动服务 优势: 容器:共用宿主机内核,轻量级,损耗少,启动快,性能高,只能运行在linux系统上 虚拟机:需要硬件的支持,需要模拟硬件,需要走开机启动流程,可以运行不同的操作系统 3 容器技术的发展过程 3.1 chroot技术 新建一个子系统(拥有自己完整的系统文件) 参考资料: https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/ 使用chroot监狱限制SSH用户访问指定目录和使用指定命令(cp,ls) https://linux.cn/article-8313-1.html 3.2 lxc linux container (namespaces:命名空间 隔离环境 及cgroups 进程资源限制) cgroups 限制一个进程能够使用的资源。cpu,内存,硬盘io 3.3 docker 4 docker容器安装

DOCKER学习_006:Docker存储驱动

雨燕双飞 提交于 2019-12-04 19:08:31
一 镜像的分层特性 在说docker的文件系统之前,我们需要先想清楚一个问题。我们知道docker的启动是依赖于image,docker在启动之前,需要先拉取image,然后启动。多个容器可以使用同一个image启动。那么问题来了:这些个容器是共用一个image,还是各自将这个image复制了一份, 然后各自独立运行呢? 我们假设每个容器都复制了一份这个image,然后各自独立运行,那么就意味着,启动多少个容器,就需要复制多少个image,毫无疑问这是对空间的一种巨大浪费。事实上,在容器的设计当中,通过同一个Image启动的容器,全部都共享这个image,而并不复制。那么问 题又随之而来:既然所有的容器都共用这一个image,那么岂不是我在任意一个容器中所做的修改,在其他容器中都可见?如果我一个容器要将一个配置文件修改成A,而另一个容器同样要将这个文件修改成B,两个容器岂不是会产生冲突? 我们把上面的问题放一放,先来看下面一个拉取镜像的示例: [root@docker-server1 ~]# docker pull ubuntu:16.04 Unable to find image 'ubuntu:16.04' locally 16.04: Pulling from library/ubuntu e80174c8b43b: Pull complete d1072db285cc:

《JAVA核心知识》学习笔记(6. Spring 原理)-5

元气小坏坏 提交于 2019-12-04 18:52:15
它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1.3. 面向切面 6.1.1.4. 容器 6.1.1.5. 框架集合 6.1.7. Spring IOC 原理 6.1.7.1. 概念 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供 了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务 6.1.7.2. Spring 容器高层视图 Spring 启动时读取应用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相应的 Bean 配 置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准 备就绪的运行环境。 其中 Bean 缓存池为 HashMap 实现 6.1.7.3. IOC 容器实现 BeanFactory-框架基础设施 BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身; ApplicationContext

云计算进入下半场,这家容器云公司将如何打造中台战略? | 爱分析调研

别说谁变了你拦得住时间么 提交于 2019-12-04 17:57:25
调研:李喆 冯伟,撰写:冯伟 云原生技术提供商时速云立足容器云产品矩阵,从工具向技术中台迈进,致力于为企业应用提供从研发、集成、测试、交付到运维的全生命周期服务,并拓展AI、边缘计算等新场景,深度服务金融、能源、运营商、制造、教育等多个领域客户。 在过去三到五年时间里,云计算技术正在日益深刻地改变各行业、各领域的信息化建设。在一些信息化建设历史久远,系统比较完善的行业和领域内,企业的IT架构正面临从传统的单体架构向更加适应云环境的微服务架构转型的迫切需求。对于那些IT架构刚刚搭建不久的初创型互联网公司,日益增长的业务量也对服务的稳定性和运维的效率提出了更高的要求。 近年来,IT架构转型的需求催生了云计算领域中一个蓬勃发展的细分赛道——云原生。自2018年来,云原生技术开始在企业IT架构搭建和转型中发挥引领性作用,容器、DevOps、微服务、敏捷方法、持续集成、持续交付等云原生理念日益深入人心,这也是云计算浪潮发展到一个成熟阶段后的必然结果。 成立于 2014 年底的时速云,是⼀家专注云原生技术的容器云PaaS服务提供商,其创始团队来自于IBM、VMWare、Oracle、阿里云等国内外巨头企业。 时速云作为在容器云产品化尝试中最早选择Kubernetes路线的厂家,从2018年开始到2019年,在人工智能、边缘计算等领域进行了应用场景的拓展,同时加强了产品对敏捷开发体系

从零开始入门 K8s | 深入剖析 Linux 容器

不问归期 提交于 2019-12-04 17:51:54
作者 | 唐华敏(华敏) 阿里云容器平台技术专家 本文整理自《CNCF x Alibaba 云原生技术公开课》第 15 讲。 关注“阿里巴巴云原生”公众号,回复关键词“ 入门 ”,即可下载从零入门 K8s 系列文章 PPT。 导读 :Linux 容器是一种轻量级的虚拟化技术,在共享内核的基础上,基于 namespace 和 cgroup 技术做到进程的资源隔离和限制。本文将会以 docker 为例,介绍容器镜像和容器引擎的基本知识。 容器 容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。先看一下下面这张图,这张图简单描述了一个容器的启动过程。 最下面是一个磁盘,容器的镜像是存储在磁盘上面的。上层是一个容器引擎,容器引擎可以是 docker,也可以是其它的容器引擎。引擎向下发一个请求,比如说创建容器,这时候它就把磁盘上面的容器镜像运行成在宿主机上的一个进程。 对于容器来说,最重要的是怎么保证这个进程所用到的资源是被隔离和被限制住的,在 Linux 内核上面是由 cgroup 和 namespace 这两个技术来保证的。接下来以 docker 为例,详细介绍一下资源隔离和容器镜像两部分的内容。 一、资源隔离和限制 namespace namespace 是用来做资源隔离的,在 Linux 内核上有七种 namespace,docker

Docker 底层技术与端口映射

梦想的初衷 提交于 2019-12-04 17:47:19
容器底层实现技术     1.cgroup 实现了资源的限额:CPU,内存,硬盘     cgroup使用     docker run -d -m 100M httpd   2.namespace 实现了资源隔离     namespace 实现了容器间资源的隔离   3.unionfs 联合文件系统 Linux 使用了六种 namespace,分别对应六种资源:Mount、UTS、IPC、PID、Network 和 User    Mount namespace   Mount namespace 让容器拥有整个文件系统。   UTS namespace   简单的说,UTS namespace 让容器有自己的 hostname。 默认情况下,容器的 hostname 是它的短ID,可以通过 -h 或 --hostname 参数设置。   IPC namespace   IPC namespace 让容器拥有自己的共享内存和信号量(semaphore)来实现进程间通信,而不会与 host 和其他容器的 IPC 混在一起   PID namespace   容器在 host 中以进程的形式运行。容器内进程的 PID 不同于 host 中对应进程的 PID,容器中 PID=1 的进程当然也不是 host 的systemd进程。也就是说:容器拥有自己独立的 PID,这就是 PID

Docker服务编排05-k8s持续集成(CICD)springcloud微服务

为君一笑 提交于 2019-12-04 16:36:41
k8s持续集成(CICD)springcloud微服务 DevOps简介 CICD简介 环境准备 微服务程序 安装gitlab服务器中文版 安装jenkins 安装harbor 安装maven 安装git客户端 安装k8s集群 部署微服务 部署微服务 上传代码 添加构建服务 DevOps简介 DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作 详细解释 CICD简介 持续集成(continuous integration )指的是,频繁地(一天多次)将代码集成到主干。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 它的好处主要有两个。 (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 (2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大

Docker 容器概念

安稳与你 提交于 2019-12-04 15:10:07
容器技术的火热, 必将为线上服务运维方式带来变革。中间件集群管理的目标是使中间件运维更轻、更快、更稳定、更简易, docker 容器技术便是我们实现这一目标的有力工具。这一节我们先来介绍 docker 容器概念及其优势。 不玩虚的, 当然更畅快 docker 与虚拟机(vm)对比: lark_01_vm_vs_docker 虚拟机运行在虚拟硬件上, 应用运行在虚拟机内核上。而 docker daemon 是宿主机上的一个进程, 应用只是 docker daemon 的一个子进程, 换句话说, 应用直接运行在宿主机内核上。 虚拟机需要特殊硬件虚拟化技术支持, 因而只能运行在物理机上。docker 没有硬件虚拟化, 因而可以运行在物理机、虚拟机, 甚至 docker 容器内(嵌套运行)。 因为没有硬件虚拟化及多运行一个 Linux 内核的开销, 应用运行在 docker 上比虚拟机上更轻、更快。 那么, 使用 docker 和直接在宿主机上运行一个程序有什么区别呢?答案是 docker 容器使用 cgroup 名字空间实现了 CPU, 内存, 网络, 文件系统等资源隔离。了解 chroot 的同学可以认为 docker 就是一个更优雅的 chroot。 说到隔离, docker 容器的文件系统在哪里呢? 答案就是镜像。 docker 镜像 镜像描述了 docker