Docker技术与实践.pptx
文本预览下载声明
Docker 技术与实践
主要内容
一、Docker介绍及原理
二、Docker基本操作
三、Docker实践案例
什么是Docker?
Docker的生态圈
认识Docker
Docker VS VM
Docker的原理
Docker文件系统
Docker三大核心
Docker操作-仓库
Docker操作-镜像
Docker操作-容器
Docker操作-Dockerfile
Docker操作-API
待解决的问题
案例架构说明
容器配置存储-etcd
配置管理代理-confd
与容器联动
第一部分
Docker介绍及原理
什么是Docker?
Docker是一个构建在LXC之上,基于进程容器的轻量级VM解决方案,实现了一种应用程序级别的资源隔离及配额。Docker起源于PaaS提供商dotCloud 基于go语言开发,遵从Apache2.0开源协议。
Docker的生态圈
Official Repos 14K+ Dockerized Apps
Community
460+ Contributors
250+ Meetups on Docker
2.75M Downloads
6.7K Projects on GitHub
Support
Enterprise Support
Robust Documentation
Implementation, Integration, Training
Network of Partners
The Docker Platform
Docker Engine
Docker Hub
Build, Ship, and Run
Partners
Content
Users
认识Docker
Docker VS VM
Docker的原理
LinuxKernel
Docker文件系统
第二部分
Docker基本操作
Docker三大核心
容器
Container
镜像
images
仓库
Repositories
Docker操作-仓库
Docker操作-镜像
Docker操作-容器
Docker操作-Dockerfile
Docker操作-API
第三部分
Docker实践案例
待解决的问题
1、如何实现自动发现?
2、如何支持多台主宿机?
3、容器服务的高可用如何保障?
5、如何实现资源最大化利用?
4、如何保证容器服务负载均衡?
案例架构说明
HTTP request
Etcd master
Etcd slave
Server_1
Server_2
Docker
REST-API
Haproxy.cfg
架构流程
容器配置存储-etcd
# curl -L 2:4001/v2/keys/app/servers/web1 -XPUT -d value=“0:23843“
{
action: get,
node: {
createdIndex: 2,
key: “/app/servers/web1,
modifiedIndex: 2,
value: 0:23843
}
}
# curl -L 2:4001/v2/keys/app/servers/web1 -XDELETE
{
action: delete,
node: {
createdIndex: 3,
“key”: “/app/servers/web1,
modifiedIndex: 4
},
prevNode: {
key: “/app/servers/web1,
value: 0:23843,
modifiedIndex: 3,
createdIndex: 3
}
}
配置管理代理-confd
# cat /etc/confd/conf.d/helloworld.toml
[template]
src = haproxy.cfg.tmpl
dest = /etc/haproxy/haproxy.cfg
keys = [
/app/servers,
]
reload_cmd = /etc/init.d/haproxy reload
# cat /etc/confd/templates/haproxy.cfg.tmpl
…
listen frontend :8080
mode http
stats enable
stats uri /haproxy?stats
balance roundrobin
option httpclose
o
显示全部