容器技术

Linux与Docker比较、Docker 基本概念

我怕爱的太早我们不能终老 提交于 2019-12-08 23:45:00
*为什么会有Docker出现? *一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。 *Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。 *环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一摸一样地复制过来。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。 *从搬家,到搬楼。 *之前在服务器配置一个应用的运行环境, 要安装各种软件,比如:JAVA/TOMCAT/MYSQL/JDBC驱动包等。安装配置麻烦,而且不能跨平台。假如在Windows上安装这些环境,到Linux又要重新装,况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。 *传统上认为,软件编码开发/测试结束后,所产出的成果既是程序或是能够编译执行的二进制字节码等(Java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让运维团队得以部署应用程序,开发需要清楚的告诉运维团队,用的配置文件+所有软件环境。Docker镜像的设计,使得Docker得以打破过去【程序即应用

原生技术基础学习(基础概念)

依然范特西╮ 提交于 2019-12-08 13:11:32
云原生技术基础学习 这是阿里的一个技术公开课, 视频链接 基础 容器基本概念: namespace 资源视图隔离 cgroup 控制资源使用率 chroot 独立的文件系统 容器是一个视图隔离,资源可限制、独立文件系统的进程集合。 容器镜像: 运行容器所需要的所有文件集合 Dockerfile 来描述镜像构建步骤。 构建步骤所产生出文件系统的变化叫做 changeset disk snapshot, 提高分发效率,减少磁盘压力。 Kubernetes 的概念: Kubernetes 是自动化的容器编排平台, 包括部署、弹性、管理 核心功能: (kubernetes 的水平伸缩, 自动恢复, 调度) 服务发现与负载均衡 容器自动装箱 存储编排 自动容器恢复 自动发布与回滚 批量执行 水平伸缩 架构简介: Kubernetes 架构是一个比较典型的二层架构 和 server-client 架构。master 作为作为中央的控制节点会与Node 进行一个连接。 所有 UI,client 这些user侧组件只会和 Master 进行连接,把希望的状态或像执行的命令下发给master, master 会把这些命令或者状态下发给相应的节点,进行最终的执行。 Kubernetes 的 master 包含四个主要的组件: API Server, Contronller, Scheduler 以及

如何使用Docker、Docker-Compose和Rancher搭建部署Pipeline(三)

倖福魔咒の 提交于 2019-12-08 10:27:04
在这一部分,我们将一步步的走进Rancher,细致的探讨Rancher将如何解决在部署与容器管理时出现的种种的问题。回顾教程的 第二部分 ,你会发现我们已经将应用的部署迁移至Docker Compose,并且已经建立了一系列工作步骤来部署我们的应用。这将使得开发人员能够轻松的对他们的应用部署逻辑进行修正,运维人员也可以查看应用的部署时间。当然,在上一个部分教程的一系列操作中,也存在一些显而易见的问题需要解决。 使用Docker-Compose时面临的挑战 首先,运维人员必须手动地调整所有服务的执行计划。部署人员需要决定将哪一个应用部署至哪一台主机,这意味着部署人员需要时刻对每一台主机的剩余可用资源都有了解,如果某一台主机或者容器崩溃了,部署的操作人员将需要对应用进行重新部署。实际生产中,这意味着主机常常处于负载失衡的状态,并且服务在崩溃之后需要很长时间才能得到恢复。 其次,使用Docker-Compose时,想要获得你的服务的当前状态是十分困难的。举个例子来说,我们经常会从运维人员、项目经理以及开发者口中听到这样的问题:“现在部署环境中运行的到底是XX应用程序的哪个版本?”如果我们采用的是手动调整服务的执行计划的方式,想要得到这个问题的答案通常需要询问指定的进行操作的工程师,工程师们需要登陆服务器并运行docker中的ps命令来查看容器的信息。然而面对这些问题

windows下安装docker详细步骤

China☆狼群 提交于 2019-12-08 08:53:55
1.Docker溯源    Docker的前身是名为dotCloud的小公司,主要提供的是基于 PaaS(Platform as a Service,平台及服务)平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架。因为其为初创的公司,又生于IT行业,dotCloud受到了IBM,亚马逊,google等公司的挤压,发展举步维艰。于是,在2013年dotCloud 的创始人,年仅28岁的Solomon Hykes做了一个艰难的决定:将dotCloud的核心引擎开源!然而一旦这个基于 LXC(Linux Container)技术的核心管理引擎开源,dotCloud公司就相当于走上了一条"不归路"。可正是这个孤注一掷的举动,却带来了全球技术人员的热潮,众程序员惊呼:太方便了,太方便了。也正是这个决定,让所有的IT巨头也为之一颤。一个新的公司也随之出世,它就是:Docker。可以说,Docker是一夜成名的!! 2.Docker认识 2.1镜像,容器,仓库    首先,需要了解一下几个概念:镜像,容器,仓库 镜像(image): Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。镜像是一种文件结构

极简Docker和Kubernetes发展史

北城以北 提交于 2019-12-08 08:30:37
极简Docker和Kubernetes发展史 https://www.cnblogs.com/chenqionghe/p/11454248.html 2013年 Docker项目开源 2013年,以AWS及OpenStack,以Cloud Foundry为代表的开源Pass项目,成了云计算领域的一股清流,pass提供了一种“应用托管”的能力。 当时的虚假机和云计算已经是比较普遍的技术了,主流用法就是租一批AWS或者OpenStack的虚拟机,然后用脚本或者手工的方式在机器上部署应用 Cloud Foudry这样的Pass项目,核心组件就是一套打包和分发机制,会调用操作系统的Cgroups和Namespace机制 为每个应用单独创建“沙盒”的隔离环境,然后在“沙盒”中运行这些进程,实现了多用户、批量、隔离运行的目的。 这个“沙盒”,就是所谓的容器。 这一年还叫dotCloud的Docker公司,也是Pass热潮中的一员。只不过,比起Heroku、Pivotal、Red Hat等大佬,dotCloud公司显得太微不足道,主打产品跟主流的CloudFoundry社区脱节,眼看就要阵亡的时候,dotCloud公司决定开源自己的容器项目Docker “容器”其实不是什么新鲜的东西,不是Docker发明的,当时最热的Pass项目Cloud Foundry中,容器也只是最底层、最不受关注的一部分

Flex - 灵活布局,随心所欲

流过昼夜 提交于 2019-12-08 02:37:11
Flex-Layout Demostration [前言] “年味”在今天算是彻底散去了,大家记得吃元宵,元宵节快乐! 从今天开始恢复周更,每周一篇 深入探索,技术深耕 ,大家一起加油吧! [导读] 闲来无事重新拾起 H.C.J (Html, CSS, Javascript),想要夯实自己的基础。年前的项目中不管是从大的框架还是小的实现细节,最终落地的时候总会因为基础不扎实而导致整个开发流程不是很 “顺畅” ,所以才会在闲暇时间啃啃书,来内观自己。 Page Layout - 谈到布局大脑里总会反射出几个关键词**“position, float , clear” -(令人咂舌的东西),页面元素采用 合适的布局 会让你的页面给人的直观感受产生质的飞跃。 合适的布局**不仅仅由独特的美感,而且对于信息的展示更是锦上添花,同时对越代码的书写也会起到正向引导。 本篇文章主要谈的是 Flex ,利用Flex来对页面进行需要的布局,如何来操作,如何依照Flex的操作流程复现或是实现自己想要实现的页面效果。 [关键词] 布局(Layout),Flex,Grid,响应式设计(Responsive Design) [提问] Flex到底是何物? 如何使用Flex来复现你所见到的网页布局? 如何使用Flex轻松的来完成你自己网页布局? [正文] 一. CSS - Flex Flex

微服务实战(六):选择微服务部署策略

纵然是瞬间 提交于 2019-12-07 19:36:50
本系列七篇文章列表如下: 微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五):微服务的事件驱动数据管理 微服务实践(六):选择微服务部署策略 微服务实践(七):从单体式架构迁移到微服务架构 【编者的话】这篇博客是用微服务建应用的第六篇, 第一篇 介绍了微服务架构模板,并且讨论了使用微服务的优缺点。随后的文章讨论了微服务不同方面:使用API网关,进程间通讯,服务发现和事件驱动数据管理。这篇文章,我们将讨论部署微服务的策略。 部署一个单体式应用意味运行大型应用的多个副本,典型的提供若干个(N)服务器(物理或者虚拟),运行若干个(M)个应用实例。部署单体式应用不会很直接,但是肯定比部署微服务应用简单些。 一个微服务应用由上百个服务构成,服务可以采用不同语言和框架分别写就。每个服务都是一个单一应用,可以有自己的部署、资源、扩展和监控需求。例如,可以根据服务需求运行若干个服务实例,除此之外,每个实例必须有自己的CPU,内存和I/O资源。尽管很复杂,但是更挑战的是服务部署必须快速、可靠和性价比高。 有一些微服务部署的模式,先讨论一下每个主机多服务实例的模式。 单主机多服务实例模式 部署微服务的一种方法就是单主机多服务实例模式,使用这种模式

Docker

安稳与你 提交于 2019-12-07 19:32:31
一、简介 1.1 为什么出现docker 1.2什么是docker 打包应用程序及程序运行所依赖的环境, 产出叫做Docker 镜像 启动多个镜像到服务器中 是一个CS架构的软件产品 概念: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上 ,是一种轻量级的虚拟化技术。 1.3发展史 Docker 公司位于旧金山,原名dotCloud,底层利用了Linux容器技术(在操作系统中实现资源隔离与限制)。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker就是这样诞生的! 2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破。于是他们聘请了 Ben Golub 作为新的 CEO,将公司重命名为Docker,放弃dotCloud PaaS 平台,怀揣着"将 Docker 和容器技术推向全世界"的使命,开启了一段新的征程。 "Docker"一词来自英国口语,意为码头工人(Dock Worker),即从船上装卸货物的人。 如今 Docker 公司被普遍认为是一家创新型科技公司,据说其市场价值约为 10 亿美元。Docker 公司已经通过多轮融资,吸纳了来自硅谷的几家风投公司的累计超过 2.4 亿美元的投资

在 Ubuntu 上体验 LXD 容器 | Linux 中国

会有一股神秘感。 提交于 2019-12-07 16:44:55
本文的主角是容器,一种类似虚拟机但更轻量级的构造。你可以轻易地在你的 Ubuntu 桌面系统中创建一堆容器!-- Simos Xenitellis 本文导航◈ 设置 Ubuntu 容器 09% ◈ 创建第一个容器 37% ◈ 安装 web 服务器 56% ◈ 清理 84% 编译自 | https://blog.simos.info/trying-out-lxd-containers-on-our-ubuntu/  作者 | Simos Xenitellis  译者 | lujun9972 本文的主角是容器,一种类似虚拟机但更轻量级的构造。你可以轻易地在你的 Ubuntu 桌面系统中创建一堆容器! 虚拟机会虚拟出整个电脑让你来安装客户机操作系统。 相比之下 ,容器 复用 了主机的 Linux 内核,只是简单地 包容 了我们选择的根文件系统(也就是运行时环境)。Linux 内核有很多功能可以将运行的 Linux 容器与我们的主机分割开(也就是我们的 Ubuntu 桌面)。 Linux 本身需要一些手工操作来直接管理他们。好在,有 LXD(读音为 Lex-deeh),这是一款为我们管理 Linux 容器的服务。 我们将会看到如何: ☉ 在我们的 Ubuntu 桌面上配置容器,☉ 创建容器,☉ 安装一台 web 服务器,☉ 测试一下这台 web 服务器,以及☉ 清理所有的东西。 设置

Docker?Rkt?Lxd?细说K8S容器进行时的又一选项Containerd

不打扰是莪最后的温柔 提交于 2019-12-07 16:44:39
器运行时是执行容器并在节点上管理容器镜像的软件,目前,最广为人知的容器运行时是Docker,但在生态系统中还有其他容器运行时软件,比如Rkt、Containerd和Lxd。Docker是现在于Kubernetes环境中使用的最常见的容器运行时,今天 数人云 给大家推荐一个Docker的组件——Containerd,它可能是更好的选择。 本文是由谷歌的软件工程师Lantao Liu和IBM的开源开发者Mike Brown基于自身相关实践,共同编写。 Kubernetes 1.5引入了一个名为容器运行时接口(CRI)的内部插件API,以方便地访问不同的容器运行时,CRI允许Kubernetes使用各种容器运行时,而不需要重新编译。从理论上说,Kubernetes可以使用任何实现CRI的容器运行时管理容器和容器镜像。 在过去的6个月中,来自Google、Docker、IBM、中兴和ZJU的工程师们一直在努力为CRI For Containerd,这个项目被称为cri-containerd,用户可以使用容器作为底层运行时运行Kubernetes集群,并且无需安装Docker。 Containerd Containerd是一个兼容OCI的核心容器运行时,它被设计为嵌入到更大的系统当中,提供了在一个节点上执行容器和管理镜像的最小功能集,它是由Docker公司发起