容器技术

如何使用 Docker 组件开发 Django 项目?

倾然丶 夕夏残阳落幕 提交于 2019-12-06 00:50:20
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。自2013年发布以来,无论是从 Github 上的代码活跃度,还是 Redhat 在 RHEL6.5 中集成对 Docker 的支持, 就连 Google 的 Compute Engine 也支持 Docker 在其之上运行。火热程度可见一斑! 本篇文章详细介绍了如何通过 Docker Machine 「系统配置」和 Docker Compose 「多容器应用组装」 提供堆栈完成 Postgres, Redis 和 Django 项目相结合的开发。 而在最后,该堆栈将包括如下每个服务的单独的容器: 一个 Web/ Django 的容器 一个 Nginx 的容器 一个 Postgres 的容器 一个 Redis 的容器 一个 Data 容器 ##本地设置 使用 Docker「v1.6.1」版本我们将使用到 Docker Compose 「v1.2.0」编排一个多容器组成的应用程序,使用 Docker Machine「v0.2.0」创建本地和云的 Docker 主机。 按照指示,分别安装 Docker Compose 和 Machine,然后测试安装结果: $ docker-machine --version docker

Docker 使用指南 (五)—— Dockerfile 详解

假如想象 提交于 2019-12-06 00:35:30
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/97 来源:腾云阁 https://www.qcloud.com/community 制作Docker image 有两种方式:一是使用 Docker container,直接构建容器,再导出成 image 使用;二是使用 Dockerfile,将所有动作卸载文件中,再 build 成 image。Dockerfile 的方式非常灵活,推荐使用。 本次实验环境: 腾讯云服务器 CentOS 6.7 x86_64 一.Dockerfile 基本结构 一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。’#’ 为 Dockerfile 中的注释。先看下面一个小例子: # This my first nginx Dockerfile # Version 1.0 # Base images 基础镜像 FROM centos #MAINTAINER 维护者信息 MAINTAINER tianfeiyu #ENV 设置环境变量 ENV PATH /usr/local/nginx/sbin:$PATH #ADD 文件放在当前目录下,拷过去会自动解压 ADD nginx-1.8.0.tar.gz

重温IOC--控制反转与依赖注入

断了今生、忘了曾经 提交于 2019-12-05 23:53:44
转自: https://www.cnblogs.com/jhli/p/6019895.html github上一篇比较贴切的举例: https://github.com/android-cn/blog/tree/master/java/dependency-injection 1 IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问题,就可能会影响到整个齿轮组的正常运转。 齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此, 架构 师和设计师对于系统的分析和设计,将面临更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。 图2:对象之间复杂的依赖关系

阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

点点圈 提交于 2019-12-05 23:36:47
作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击即可完成下载。 导读 :值得阿里巴巴技术人骄傲的是 2019 年阿里巴巴 双11 核心系统 100% 以云原生的方式上云,完美支撑了 54.4w 峰值流量以及 2684 亿的成交量。背后承载海量交易的计算力就是来源于容器技术与神龙裸金属的完美融合。 集团上云机器资源形态 阿里巴巴 双11 采用三地五单元架构,除 2 个混部单元外,其他 3 个均是云单元。神龙机型经过 618、99 大促的验证,性能和稳定性已大幅提升,可以稳定支撑 双11。今年 双11 的 3 个交易云单元,已经 100% 基于神龙裸金属,核心交易电商神龙集群规模已达到数万台。 神龙架构 阿里云 ECS 虚拟化技术历经三代,前二代是 Xen 与 KVM,神龙是阿里巴巴自研的第三代 ECS 虚拟化技术产品,它具备以下四大技术特征: 存储和网络 VMM 以及 ECS 管控,和计算虚拟化分离部署; 计算虚拟化进一步演化至 Near Metal Hypervisor; 存储和网络 VMM 通过芯片专用 IP 业务加速; 并池支持弹性裸金属和 ECS 虚拟机生产。 简而言之,神龙将网络/存储的虚拟化开销 offload 到一张叫 MOC 卡的 FPGA 硬件加速卡上,降低了原 ECS 约 8%

阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

本秂侑毒 提交于 2019-12-05 23:36:13
作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击即可完成下载。 导读 :值得阿里巴巴技术人骄傲的是 2019 年阿里巴巴 双11 核心系统 100% 以云原生的方式上云,完美支撑了 54.4w 峰值流量以及 2684 亿的成交量。背后承载海量交易的计算力就是来源于容器技术与神龙裸金属的完美融合。 集团上云机器资源形态 阿里巴巴 双11 采用三地五单元架构,除 2 个混部单元外,其他 3 个均是云单元。神龙机型经过 618、99 大促的验证,性能和稳定性已大幅提升,可以稳定支撑 双11。今年 双11 的 3 个交易云单元,已经 100% 基于神龙裸金属,核心交易电商神龙集群规模已达到数万台。 神龙架构 阿里云 ECS 虚拟化技术历经三代,前二代是 Xen 与 KVM,神龙是阿里巴巴自研的第三代 ECS 虚拟化技术产品,它具备以下四大技术特征: 存储和网络 VMM 以及 ECS 管控,和计算虚拟化分离部署; 计算虚拟化进一步演化至 Near Metal Hypervisor; 存储和网络 VMM 通过芯片专用 IP 业务加速; 并池支持弹性裸金属和 ECS 虚拟机生产。 简而言之,神龙将网络/存储的虚拟化开销 offload 到一张叫 MOC 卡的 FPGA 硬件加速卡上,降低了原 ECS 约 8%

docker入门

≡放荡痞女 提交于 2019-12-05 22:42:53
wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现。 docker是linux容器的一种封装,提供简单易用的容器使用接口。它是最流行的Linux容器解决方案。 docker的接口相当简单,用户可以方便的创建、销毁容器。 docker将应用程序与程序的依赖,打包在一个文件里面。运行这个文件就会生成一个虚拟容器。 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了docker,就不用担心环境问题了。而且docker有一个特点,就是秒级别启动,非常快 docker应用场景 web应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他应用 为什么要用docker? 我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容 docker与虚拟机的区别 docker VS 传统虚拟机 特性 容器 虚拟机 启动

docker基础知识

浪子不回头ぞ 提交于 2019-12-05 22:11:33
一、认识 1.什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker 自开源后受到广泛的关注和讨论,以至于dotCloud 公司后来都改名为 Docker Inc。Redhat已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。 Docker的主要目标: 通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用级别的一次封装,到处运行。 小贴士:这里的应用组件,可以是WEB应用,也可以是一套数据库服务,甚至可以是一个操作系统编译器 2.为什么使用docker Docker容器虚拟化的优点: 环境隔离; 通过cgroups和namesapce进行实现资源隔离,实现一台机器运行多个容器互不影响。 更快速的交付部署; 使用docker,开发人员可以利用镜像快速构建一套标准的研发环境;开发完成后,测试和运维人员可以直接通过使用相同的环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。并且,各个步骤都有明确的配置和操作,整个过程全程课件

Docker常用命令

馋奶兔 提交于 2019-12-05 20:31:55
Docker中最核心最基本的概念就是镜像(Image),容器(Container),以及仓库(Repository),其常用的操作命令也就是围绕这三个进行。 查看本地镜像 docker image ls [OPTIONS] [REPOSITORY[:TAG]] docker images [OPTIONS] [REPOSITORY[:TAG]] OPTIONS说明: -all, -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); --digests :显示镜像的摘要信息; --filter, -f :显示满足条件的镜像; --format :指定返回值的模板文件; --no-trunc :显示完整的镜像信息; --quiet, -q :只显示镜像ID。 从仓库拉取镜像 docker image pull [OPTIONS] NAME[:TAG|@DIGEST] docker pull [OPTIONS] NAME[:TAG|@DIGEST] OPTIONS说明: --all-tags , -a :拉取所有 tagged 镜像; --disable-content-trust :忽略镜像的校验,默认开启; 从仓库查找镜像 docker search [OPTIONS] TERM OPTIONS说明: --automated :只列出 automated

docker入门到放弃

我是研究僧i 提交于 2019-12-05 19:28:27
1.容器简介 Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。 Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。 容器不就是虚拟化吗 是,但也不竟然。 虚拟化使得许多操作系统可同时在单个系统上运行。 容器则可共享同一个操作系统内核,将应用进程与系统其他部分隔离开。 官方文档 https://docs.docker.com/install/linux/docker-ce/centos/ 2.安装 2.1卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 2.2替换阿里云yum源 yum-config-manager --add-repo http://mirrors.aliyun.com

[转]Spring的IOC原理[通俗解释一下]

北战南征 提交于 2019-12-05 18:59:30
1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问题,就可能会影响到整个齿轮组的正常运转。 齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此,架构师和设计师对于系统的分析和设计,将面临更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。 图2:对象之间复杂的依赖关系 耦合关系不仅会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度,是软件工程永远追求的目标之一。 为了解决对象之间的耦合度过高的问题 ,软件专家Michael Mattson提出了IOC理论,用来实现对象之间的“解耦”