Docker 漫谈——MacTalk By池建强

2015-10-29 16:13:00
先知
转贴
16356
摘要:Docker 漫谈 @MacTalk By 池建强。Twitter: @sagacity,Weibo: @池建强,Mail: jackychi@gmail.com。
Docker 漫谈 @MacTalk By 池建强

Twitter: @sagacity

Weibo: @池建强

Mail: jackychi@gmail.com



Docker - 云端的容器

传统的软件产品开发
‣确定产品定位和需求,确定首次迭代的范围。
‣制作界面原型。
‣技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈, 例如 Java 环境、Python 环境、Ruby 环境、数据库、中间件等等。
‣构建基础技术框架和服务,包括日志、存储、消息、缓存、搜索、数 据源、集群扩展等等。
‣模拟用户容量,构建测试环境。
‣开始编写真正的业务代码,实现产品功能。
‣迭代开发/测试,生生不息,周而复始,直到头发掉光为止……

dotCloud 的理想
‣确定产品定位和需求,确定首次迭代的范围。
‣制作界面原型。
‣PaaS
‣开始编写真正的业务代码,实现产品功能。

‣迭代开发/测试,生生不息,周而复始,直到头发掉光为止……



Docker是一个开源引擎,它能够以容器的方式自动部署任何应用。轻 量级,可移植,虚拟化,语言无关
‣Docker采用 Go 语言实现,沙箱机制。容器即服务
‣任何在你的笔记本上运行良好的应用容器都可以部署到产品环境、虚 拟机、硬件集群和OpenStack集群上
一次编写,随处运行(@Linux 3.8+ AUFS)


Docker 术语
‣Container:LinuxContainer(容器),运行时可写
‣Image:容器的镜像,每个镜像可以运行多个容器实例
‣Hub:中央仓库,为分布式应用提供广泛服务,包括容器 镜像分布、更改、用户和团队协作、生命周期自动化等
‣Dockerfile:创建镜像的自动化脚本
‣Push/Pull:从 Index 获得镜像或者推送镜像到 Index


容器的特点
‣容器是一系列进程的集合
‣使用 libcontainer 技术实现本地 Linux 容器
‣使用 namespaces 实现文件系统、进程和网络的隔离
‣使用 cgroups 实现资源的隔离和分组,包括 CPU、内存
‣基于copy-on-write创建文件系统,分层、快速、占用空间少
‣交互式 Shell


从容器实例来看,你可以
‣通过 SSH 登录容器
‣可以拥有 ROOT 权限
‣可以安装需要的程序包
‣有自己的网卡信息
‣能够配路由表和 iptables规则
‣可以挂接文件系统
‣……

Docker VS 虚 拟机
Docker 是基于 libcontain 实现的轻量级容 器,进程级别
在主机上运行时只是一组进程
基于分层文件系统实现 COW,共享只读分区
轻量级,占用的资源少,一台主机可以轻松运行成百 上千的容器

启动时间快,秒级启动


容器从哪里来?
镜像和容器
镜像是模板,容器是实例,镜像和容器之 间可以相互转换

Shell 命令
-  run:从镜像运行一个新容器
-   start:启动一个已经停止的容器
-    stop:停止一个正在运行的容器
- attach:连接一个正在运行的容器
- ps:浏览系统中的容器
- images:浏览系统中的镜像
- build: 根据构建脚本 Dockerfile 构建容器
- inspect:查看容器的系统信息
……


docker run --name lvs1 --privileged -m="2g" -c=2 -i -t -d -p 42292:22

-p 45080:80 ubuntu:lvs /usr/sbin/sshd -D


基于 Docker 测试


基于 Docker 构建服务

使 用 Docker 的 API

Docker API
‣Registry API:提供 Docker的注册集成服务,存储镜像
‣DockerHubAPI:提供 DockerHub 的集成服务
‣Docker Remote API:Docker 引擎远程命令行的代替者,通过编 程的方式管理 Docker

所有的Docker API 都是 Restful 风格的

Docker API为开发者提供了极大的扩展能力
基于 SSL/TLS 的 CA Server-Client 认证保证 API 调用 的安全性
基于 Docker API 的第三方认证

Docker的安全
If you have root on acontainer you have root on thewhole box.
‣ 不要上来就给容器 Root权限
‣ 如果不得不给,可以让它看起来像是 Root
‣ 如果还不够,在给用户 Root权限的同时,构建 另一道防线


关注 Docker 的开源项目
发表评论
叁 加 零 =
评论通过审核后显示。
文章分类
联系方式
联系人: 王春生
Email: chunsheng@cnezsoft.com