大纲
第一部分 什么是Docker第二部分 如何实用Docker进行大数据开发
Docker简介
Docker :码头搬运工,这种搬运工搬运的是集装箱(Container),集装箱里面装的是任意 类型的App,Docker把App(叫Payload)装在 Container内,通过Linux Container技术的包装将App变成一种标准化的,可移植的,自管理的组件,这种组件可以在你的本地机器上开发,调试运行,最终非常方便和一致地允许在production环境下。
What is Docker?
docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating system–level
irtualization on Linux.
[Source: en.wikipedia.org]
Docker与其他的VM方案比较
Docker的优缺点
优点
•小而且快,易于分发
•不依赖环境运行相同的应用
•可以部署在本地,虚拟机,或者云上
•不用担心是哪个Linux系统
•Google,微软,Amazon等公司都支持Docker
缺点
•只支持Ubix/Linux(Mac/Win
也可以,基于Linux虚拟机)
•只包含应用,不包含数据
•性能上有稍稍损失
Docker的安装
•
•内核要去 3.10 以上 uname –r
•sudo apt-get update
•sudo apt-get install docker.io
•sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv- keys 36a1d7869245c8950f966e92d8576a8ba88d21e9
•sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > / etc/apt/sources.list.d/docker.list"
•sudo apt-get update
•sudo apt-get install lxc-docker
Docker和VM相辅相成
•简化
•代码流水线管理
•提高开发效率
•隔离应用
•整合服务器
•调试能力
•多租户环境
•快速部署
Docker 和 Vagrant
Docker 和 VirtualBox
可以在Virtualbox里面在安装Docker
puppet是自动化部署, vagrant是虚拟机管理软件, 依托于vb、vm等虚拟机软件, docker是一个虚拟执行环境, 利用linux内核特性,实现一个半虚拟化的环境,这个环境能够方便地在各台主机上迁移和执行。
Docker镜像
100INTL Images
•https://hub.docker.com/u/100intl/
基于Docker的大数据开发环境介绍
当前的最新稳定版本:
•Hadoop 2.6.0
•HBase 1.0.0
•Hive 1.0.0
•Spark 1.3.0
Docker 常用命令
•https://docs.docker.com/reference/ commandline/cli/
•sudo docker pull 100intl/bigdatadev
•sudo docker push 100intl/bigdatadev
•sudo docker ps
•sudo docker rmi -f 100intl/xxxx
•sudo docker build -t 100intl/bigdatadev:latest .
•sudo docker run -i -t -p 10011:2122 -h bigdata 100intl/bigdatadev /etc/ bootstrap.sh –bash
•scp -r -p 10011 kusanagi-1.0-snapshot.jar root@localhost:/tmp/
在环境中启动大数据集群并部署应用
•部署Hadoop集群
分享做成的Docker Image
•推送Image到Docker Registry
•Sudo docker login