yesn 发表于 2015-10-13 09:10:28

初识Docker

Docker的目标:实现轻量级的操作系统虚拟化解决方案。Docker的基础:LXC(linux容器)


[*]不需要实际的客户操作系统,而向上层应用提供实质性的虚拟化服务。(要求Host OS必须为Linux系统)
[*]docker是,将应用自动部署到容器上的引擎(源码 : https://github.com/docker/docker)
Docker的目标:

[*]提供简单轻量的建模方式
[*]

[*]应用程序docker化:几分钟,docker上应用程序启动:1秒
[*]去除了管理程序的开销,docker应用程序拥有较高的性能
[*]同一台宿主机中可运行更多的容器,使得系统资源得到充分利用。

[*]指责的逻辑分离
[*]

[*]开发者只需关心容器中运行的应用程序,而运维人员只需要管理docker就好了。

[*]快速高效的开发生命周期
[*]

[*]缩短开发-测试-部署-上线运行的周期。
[*]具备高可移植性,在容器中开发,以容器的形式交付、分发(大幅度削减了部署运维的开销)。

[*]鼓励使用面向服务的架构
[*]

[*]推荐单个容器只运行一个应用程序或进程(高内聚低耦合)

Docker应用场景:

[*]使用Docker容器开发,测试,部署应用程序。
[*]创建隔离的运行环境
[*]

[*]很多企业中,同一应用的不同版本可能服务于不同的用户,docker很容易创建不同的环境来运行不同的应用。

[*]搭建测试环境
[*]

[*]因为其轻量化,很容易在本地搭建对于不同系统环境的测试环境,甚至集群部署的测试。

[*]构建多用户的平台即服务的基础设施
[*]提供软件即服务的应用程序
[*]高性能、超大规模的宿主机集群
Docker的基本组成:Docker Client客户端Docker Daemon守护进程Docker Image镜像Docker Container容器Docker Registry仓库


[*]Docker客户端/守护进程
[*]

[*]C/S架构

[*]Docker image
[*]

[*]容器基于镜像启动运行,镜像就是容器的源代码。
[*]层叠的只读文件系统
[*]

[*]引导文件系统(bootfs),用户几乎永远不会和引导文件系统有交互,当一个容器被创建后它将会被移进内存,而同时引导文件系统将会被卸载。
[*]载,当引导结束操作系统加载完毕后,才会被切换成读写模式。但在docker中将永远是只读模式。
[*]联合加载(union mount),同时加载多个只读文件系统,但是在外部看来只有一个文件系统。





[*]Docker Container(执行单元)
[*]

[*]容器通过镜像启动
[*]写值复制

[*]Docker Registry
[*]

[*]Docker使用仓库来保存用户构建的镜像
[*]公有:Docker Hub
[*]私有

Docker依赖Linux内核特性:

[*]namespace
[*]

[*]编程语言(封装->代码隔离)
[*]操作系统(系统资源的隔离->进程,网络,文件系统……)
[*]

[*]PID:进程隔离
[*]NET:管理网络接口
[*]IPC:管理跨进程通信的访问
[*]MNT:管理挂载点
[*]UTS:隔离内核和版本标识


[*]control groups


[*]

[*]linux内核提供,可以限制,记录,隔离进程组所使用的物力资源的机制。
[*]2007年google提出并整合入linux kernel 2.6.24
[*]

[*]资源限制
[*]优先级设定
[*]资源计量
[*]资源控制


[*]给予docker能力
[*]

[*]文件系统隔离:每个容器都有自己的root文件系统
[*]进程隔离:每个容器都运行在自己的进程环境中
[*]网络隔离:容器间网络地址和端口都是分开的
[*]资源隔离和分组:CPU和内存资源的独立分配

Ubuntu中安装:

[*]安装前检查
[*]

[*]内核版本(docker只支持64位版本)
[*]

[*]$ uname -a

[*]检查 Device Mapper(存储驱动)
[*]

[*]ls -l /sys/class/misc/device-mapper


[*]Ubuntu维护版本(较老)
[*]

[*]$ sudo apt-get install docker.io
[*]$ source /etc/bash_completion.d/docker.io

[*]Docker维护版本
[*]

[*]安装:curl
[*]

[*]sudo apt-get install -y curl

[*]安装Docker
[*]

[*]curl -sSL https://get.docker.com/ubuntu/ | sudo sh


Windows中安装:

[*]Boot2Docker
[*]

[*]Boot2Docker Linux ISO
[*]

[*]https://github.com/boot2docker/boot2docker

[*]VirtualBox
[*]MSYS-git
[*]管理工具


OS X中安装(与Windows类似)         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: 初识Docker