博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker进阶与实战 1 docker简介
阅读量:7037 次
发布时间:2019-06-28

本文共 2077 字,大约阅读时间需要 6 分钟。

1.1.1 docker的历史和发展
    build, ship and run流程,统一开发,测试,部署的环境与流程,极大的减少了运维的成本。
    利益于容器技术,分层镜像,docker在磁盘占用,内存使用,性能,效率相对于传统虚拟机有非常明显的提高。
    开源,采用apache2.0协议。
1.1.2 docker的架构介绍
   
img_91bad94f870573c84c11730d1813a45d.png
Docker Diagram
Virtual Machine Diagram
docker相对传统的虚拟机去掉了hypervisor层的开销,虚拟化技术基于Cgroup,Namespace技术,处理逻辑与内核深度融合,在许多方面性能接近物理机。
docker通过libcontainer与内核交互,libcontainer才是容器真正意义上的引擎。通过clone系统调用创建容器,通过pivot_root系统调用进入容器,通过cgroupfs管控资源。docker本身处理更上层的业务。
docker docker另一个优势是层级镜像复用,大大提高了磁盘,内存利用率。
联合挂载:union mount,镜像存储需要支持union mount的文件系统,如AUFS,Overlay。
1.2 功能与组件
    docker 客户端
    docker daemon
    docker容器
    docker 镜像
    docker registry
1.2.1 docker 客户端
    Docker是C/S架构,docker将客户端与服务器统一在同一个二进制文件中。但windows与MAC只提供客户端。
    客户端:docker command 和 RESTful API
1.2.2 docker daemon
    docker daemon也叫docker engine,是核心引擎。
    内部机制复杂,涉及多个模块的实现和交互。
1.2.3 docker容器
    核心。Docker 通过 Libcontainer实现对容器生命周期的管理,信息的设置和查询,以及监控,通信等功能。
    容器以镜像为基础,同时又为镜像提供了一个标准的和隔离的执行环境。
    容器是软件界的‘集装箱’
1.2.4 Docker镜像
    镜像是容器的静态体现。docker镜像比传统ISO镜像要轻量许多,是一个可定制的rootfs。
    利用unionfs,docker镜像分层并可复用,极大的减小了磁盘与内存开销。
    镜像通过dockerfile来创建,也可以使用docker commit手动生成。
1.2.5 Registry
    registry是镜像仓库。官方的registry是Docker Hub。
1.3 安装和使用
1.3.1 Docker的安装
    内核:3.10以上,开启Cgroup,Namespace。
    检测脚本:https://github.com/docker/docker/blob/master/contrib/check-config.sh
    最好是使用包管理器安装:centos要安装rhel扩展库。[root@220 ~]# yum install docker -y
1.3.2 Docker的使用
    官方教程:www.docker.com/tryit
    docker --help
    docker command --help 
    man docker command
1.4 概念澄清
1.4.1 Docker 与LXC
    LXC有两个概念:LXC用户态工具,linux container
    docker在cgroup与namespace的基础上,提供了一个更高层的控制工具。
    特点:
        跨主机部署    实现进程‘沙盒’,镜像将应用程序和其所依赖的文件,配置包括网络,存储,发行版打包,转移到任何docker机器上都可以运行。
        以应用为中心    dockerfile机制大大简化和规范了应用的部署方法。
        自动部署        docker提供了一套可以从源码自动构建镜像的工具。该工具可以灵活地使用make,maven,chef,puppet,salt,debain包,rpm,源码包等,将应用程序的依赖,构建工具和安装包进行打包,且不受当前机器配置影响。
        版本管理        类似git,支持追踪镜像版本,检验版本更新,更新版本,回退版本。
        组件重用        任何窗口都可以用作生成另一个组件的基础镜像。我感觉类似python中类的概念模型。
        共享        镜像registry可以共享。
        工具生态链        提供API自动化,很多工具能与docker集成,如PAAS部署工具dokku,deis,flymn。多节点编排工具Maestro,salt,mesos,openstack nova。管理面板docker-ui,openstack horizon,shipyard。配置管理工具chef,puppet。持续集成工具jenkins,strider,travis等。
1.4.2 Docker容器与虚拟机
    容器与虚拟机互补。虚拟机是硬件资源划分的完美解决方案,容器是操作系统级别的虚拟化。
    容器与主机共享操作系统内核。
    根据需求选择容器还是虚拟机,完全隔离不考虑资源消耗使用虚拟机;隔离进程并运行大量进程使用容器。

转载地址:http://muial.baihongyu.com/

你可能感兴趣的文章
前端进阶 -js数据结构类型扩展:immutable-js(10)
查看>>
centos5.10NFS服务的配置
查看>>
有关二分查找的边界思考
查看>>
phpvirtualbox访问Ubuntu虚拟机134-配置详情
查看>>
Java 单元测试利器之 Junit
查看>>
我的友情链接
查看>>
媒体关注OSV智能桌面虚拟化平台
查看>>
安装VMware Workstation提示the msi failed的解决办法
查看>>
MongoDB安装配置
查看>>
使程序在Linux下后台运行
查看>>
webpack构建h5plus多页面移动app
查看>>
Varnish缓存更新策略调试过程
查看>>
unix bsd linux gun 粗略解释
查看>>
shell中特殊符号的用法
查看>>
我的友情链接
查看>>
上传贴图
查看>>
Spring Cloud各组件重试总结
查看>>
【面试题】C语言:模拟实现内存放置函数memset()
查看>>
桌面虚拟化 | 同VDI扭打,IDV要如何补齐短板?
查看>>
CSS Modules 详解及 React 中实践
查看>>