【docker基础知识】docker学习知识
学习任何一个开源新技术,首先问自己几个问题:
- 为什要学习它?
- 学习它需要了解哪些相关知识点?
- 如何快速学习?
- 该技术的使用场景是什么?
- 为什要学习docker?
docker是轻量级虚拟化技术,docker使linux容器技术的应用更加简单和标准化
docker容器启动时毫秒级的
docker将开发和运维职责分清
docker解决了依赖地狱问题
docker支持几乎所有操作系统
docker有着飞速发展的生态圈
很多IT巨头逐渐加入和支持 - 学习它需要了解哪些相关知识点?
云计算概念相关(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技术及其周围的生态一直在发展和演变,要系统的学习这门技术,
一. 第一阶段,基础入门
- 容器和VM的
- 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"\>![v2-cf1ebe9e0012639f42107eda57170d56_b.png][]
Docker命令,对docker以及容器有了解。(比如拉取一个镜像,并运行)。
将应用Docker化。
二. docker进阶
- 了解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"\>![v2-2170e50d1f2b41392cb74dab90092a8d_b.jpg][]
- Docker 网络/存储
- docker的编排/调度,业务的弹性伸缩
swarm+compose/swarmkit
mesos+marathon/DCOS
K8S
- 业务微服务化
三. docker深入
- docker底层技术实现(cgroup, namespace, unionFS, networking, …)
- docker engine源码分析
- docker安全 …
Libcontainer unionfs
还没有评论,来说两句吧...