初识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]