docker学习知识

来源:互联网 发布:github博客绑定域名 编辑:程序博客网 时间:2024/05/16 04:37


学习任何一个开源新技术,首先问自己几个问题:
1. 为什要学习它?
2. 学习它需要了解哪些相关知识点?
3. 如何快速学习?
4. 该技术的使用场景是什么?


  1. 为什要学习docker?
    docker是轻量级虚拟化技术,docker使linux容器技术的应用更加简单和标准化
    docker容器启动时毫秒级的
    docker将开发和运维职责分清
    docker解决了依赖地狱问题
    docker支持几乎所有操作系统
    docker有着飞速发展的生态圈
    很多IT巨头逐渐加入和支持
  2. 学习它需要了解哪些相关知识点?
    云计算概念相关(restapi, 微服务,OpenStack)
    Linux 系统管理(软件包管理,用户管理,进程管理等)
    Linux 内核相关(Cgroup, namespace 等)
    Linux 文件系统和存储相关(AUFS,BRFS,devicemapper 等)
    Linux 网络(网桥,veth,iptables等)
    Linux安全相关(Appmor,Selinux 等)
    Linux进程管理(Supervisord,Systemd etc)
    Linux容器技术(LXC等)
    开发语言(Python, GO,Shell 等)



根据Docker布道师Jerome Petazzoni的说法,Docker约等于LXC+AUFS(之前只支持ubuntu时)。
其中LXC负责资源管理,AUFS负责镜像管理;
而LXC又包括cgroup、namespace、chroot等组件,并通过cgroup进行资源管理。
所以只从资源管理这条线来看的话,Docker、LXC、CGroup三者的关系是:
cgroup在最底层落实资源管理
LXC在cgroup上封装了一层
Docker又在LXC封装了一层。



Docker技术及其周围的生态一直在发展和演变,要系统的学习这门技术,

一. 第一阶段,基础入门

1. 容器和VM的��。

2. docker的基本概念和基本组件(Docker daemon, Docker client, registry镜像库, image镜像,container容器),<img src="https://pic3.zhimg.com/v2-cf1ebe9e0012639f42107eda57170d56_b.png" data-rawwidth="899" data-rawheight="477" class="origin_image zh-lightbox-thumb" width="899" data-original="https://pic3.zhimg.com/v2-cf1ebe9e0012639f42107eda57170d56_r.png">
3. Docker命令,对docker以及容器有了解。(比如拉取一个镜像,并运行)。

4. 将应用Docker化。


二. docker进阶

1. 了解docker生态与docker应用场景
DEVOPS
服务注册发现
服务/容器日志收集处理;监控告警

<img src="https://pic2.zhimg.com/v2-2170e50d1f2b41392cb74dab90092a8d_b.jpg" data-rawwidth="1600" data-rawheight="900" class="origin_image zh-lightbox-thumb" width="1600" data-original="https://pic2.zhimg.com/v2-2170e50d1f2b41392cb74dab90092a8d_r.jpg">
2. Docker 网络/存储

3. docker的编排/调度,业务的弹性伸缩
swarm+compose/swarmkit
mesos+marathon/DCOS
K8S
4. 业务微服务化

三. docker深入

1. docker底层技术实现(cgroup, namespace, unionFS, networking, ...)
2. docker engine源码分析
3. docker安全 ...



Libcontainer  unionfs








0 0
原创粉丝点击