Docker之道 -廖述峰.

Slides:



Advertisements
Similar presentations
CNKI 知识资源总库 应用培训 内容要点 一、知网及产品体系 二、新版检索平台 三、基础功能演示 四、应用案例演示 五、实际操作.
Advertisements

LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
项目四 组建跨地区网络 授课教师:肖颖.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
不動產市場 分析與預測 第四章 不動產市場分析與研究.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
Docker学习 3月.
基于R和pentaho的全套开源BI平台的实现
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Windows 8 more simple more powerful more free.
SVN的基本概念 柳峰
AngularJS -- 使用AngularJS进行开发
第二讲 搭建Java Web开发环境 主讲人:孙娜
Docker简介及与OpenStack集成
学习目标 1、Linux(这里用的是Centos)下mysql5.7的基本安装 2、课后习题.
学习前的准备工作 讲师:burning.
Chinese Virtual Observatory
从现在做起 彻底改变你自己 Sanjay Mirchandani EMC公司高级副总裁、首席信息官.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
Jul 2014 HEAT部署Hadoop集群
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Visual Studio Team System 简介
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
ENS 10.1安装配置指南 王俊涛 | SE.
VSS使用简介 王树升
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
实习前你需要知道的 PRESENTED BY Yisa.
基于Docker的分布式服务研发实践 天云软件 葛林
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
录制回放工具使用说明 鲁晓宇
C语言程序设计 主讲教师:陆幼利.
Docker 分享
微机系统的组成.
第三組 成員 王郁昀 美術 李孟澤 程式 王子榮 企劃 美術 李奕增 企劃 美術 石名辰 企劃 程式 許登竣 美術.
Web安全基础教程
第四章 团队音乐会序幕: 团队协作平台的快速创建
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
姚金宇 MIT SCHEME 使用说明 姚金宇
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
解决“最后1公里”问题.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
Delphi 7.0开发示例.
28th Weekly Operation Report on DIRAC Distributed Computing
OpenStack vs CloudStack
Python 环境搭建 基于Anaconda和VSCode.
Google的云计算 分布式锁服务Chubby.
Zookeeper的应用 Hbase Kafka Twitter Storm Spark—mesos+zookeeper.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
Primary introduction to docker
Presentation transcript:

Docker之道 -廖述峰

传统部署的缺陷 1.环境管理复杂 -发型版不一致,lib库版本不一致,依赖不一致,bug难预测 -服务与服务之间的兼容问题 -线上环境的不可控因素太多 2.服务器资源浪费 - 开发/测试/运维都需要一定数量服务器 - 服务器满载率低,大部分资源闲置 3.应用迁移 - 系统和应用的耦合度高,新开一个项目或环境,一切从0开始构建。

传统部署的应对方式 增加服务器,统一发行版,增加人手 虚拟化技术和云计算的开展-企业内部使用虚拟化 技术,例如OpenStack或者直接使用云主机 自动化部署

洗脑环节 -Docker大法好

你会怎样构建一个Apache Apache的依赖安装 Apache安装 Apache的配置 功能测试 http://www.cnblogs.com/itech/archive/2013/04/06/3002762.html

Docker是怎么构建Apache的?

Docker with Jenkins 在jenkins中build一个apache容器 已经成功,打开看看吧

built by Jenkins

“Life is short, We use Docker.” –马克吐温

Docker是什么 Docker是一个go语言编写的封装了lxc的container容器引擎。docker技术的核心是一个操作系统级的虚拟化方案, 可以概括为四个方面:隔离,安全,便携,可度量。 隔离,安全=namespace 可度量=cgroups 便携(不同目录挂载到统一虚拟容器路径)=AUFS

Docker沙箱 lxc docker image docker container application

Docker的优势 简化配置: 一个镜像,到处运行 代码流水线管理:从开发到上线均一致的环境 提高开发效率:开发更能贴近生产,测试质量前移 整合服务器:降低硬件成本 调试能力:随时回滚,随时开分支 快速部署

Dockerfile构建Apache 1.创建dockerfile,准备配置/静态文件 root@iZ2893wjzgyZ:/home/apache# ls apache-config.conf Dockerfile website 2.构建一个apachetest镜像 root@iZ2893wjzgyZ:/home/apache# docker build -t apachetest . 3.运行一个名为testwebsite的apache容器 root@iZ2893wjzgyZ:/home/apache# docker run -d -p 8085:80 --name testwebsite apachetest 4.打开网页 Apache演示站点

Dockerfile FROM ubuntu:latest MAINTAINER Bibin Wilson <bibin.w@hcl.com> RUN apt-get update RUN apt-get -y upgrade RUN apt-get -y install apache2 ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 ENV APACHE_PID_FILE /var/run/apache2.pid EXPOSE 80 ADD website /var/www/website ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf CMD /usr/sbin/apache2ctl -D FOREGROUND

built by docker

一些可能的疑问 一定要用dockerfile吗? -命令行/dockerfile/fig.. 如何去修改配置文件? -v :映射路径或ADD命令 如何查看应用状态? - logs -f 容器之间怎么连接? - -link

docker应用场景举例 1.web应用代码在github上,github上代码更新后,用jenkins自动部署。 jenkins启动,pull代码到docker image,然后push到docker hub,然后在几 十台机器上pull新的image,然后启动新的container,关闭旧的container。 2.你可以用docker把数据库的数据与数据库程序本身分离开:用一个container A作为数据存储,然后另一个container B运行数据库。当你想升级数据库时,用新的container C替换掉container B即可,只需一分钟就可以搞定。 3.把docker作为每日集成测试的容器,当容器带-r参数运行,会在指定任务完成后删除自身,通过-v参数可以将测试结果共享到host(测试机器)上,这样可以快速完成测试环境的自动化测试集的回归,而容器基本上是秒开!

容器管理系统 UI管理:DockerUI,Seagull 集群管理:Kubernetes Paas平台:Flynn,Deis,Dokku

Seagull

docker开源项目 Flynn:一个使用Go语言编写的开源PaaS平台 Deis:基于Docker和CentOS构建了一个类Heroku的PaaS系统 Dokku:一个迷你版的Heroku Fig:一个基于Docker的用于快速搭建开发环境的工具 Drone:一个使用Go语言编写的基于Docker的持续集成系统。 Kubernetes:Google的容器集群管理工具,Kubernetes支持跨平台, 它可以在除Google以外的其它云平台中运行。 Boot2Docker:专为Docker而设计的轻量级Linux发型包,解决 Windows或者OS X用户不能安装Docker的问题。

讲解内容 传统部署的缺陷(3分钟) 传统部署的应对方式(3分钟) Docker应用场景(8分钟) 容器构建方式Shell-dockerfile - FIG(5分钟) docker的一些概念 镜像/容器/常见参数的意义…. 容器互联与目录挂载(5分钟) 讲解两个demo是如何工作的并答疑(20分钟) Docker容器的管理方式以及一些开源项目