Presentation is loading. Please wait.

Presentation is loading. Please wait.

Docker之道 -廖述峰.

Similar presentations


Presentation on theme: "Docker之道 -廖述峰."— Presentation transcript:

1 Docker之道 -廖述峰

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

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

4 洗脑环节 -Docker大法好

5 你会怎样构建一个Apache Apache的依赖安装 Apache安装 Apache的配置 功能测试

6 Docker是怎么构建Apache的?

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

8 built by Jenkins

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

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

11 Docker沙箱 lxc docker image docker container application

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

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

14 Dockerfile FROM ubuntu:latest
MAINTAINER Bibin Wilson 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

15 built by docker

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

17 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(测试机器)上,这样可以快速完成测试环境的自动化测试集的回归,而容器基本上是秒开!

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

19 Seagull

20 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的问题。

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


Download ppt "Docker之道 -廖述峰."

Similar presentations


Ads by Google