博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“码头工人”的Docker进阶之路:从轻装上路到网络、存储和安全
阅读量:6389 次
发布时间:2019-06-23

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

摘要:从2013年Docker的正式发布到如今的广泛应用,Docker的学习和使用变得尤其重要。来自Docker公司的技术专家姚义磊从Docker的网络、存储、安全等多个方面谈了他的看法以及一些学习和使用Docker的建议。

以下为精彩视频内容整理:

 

Docker介绍

5bb7bd789f7a482c73dfc1d4c6e1745b2fd5ce06

“没有集装箱,就不会有全球化。”正如集装箱改变现实世界一样,Docker也正在改变IT世界。那Docker究竟有什么魔力能改变IT世界呢?下面从Docker的简介、发展历程、成绩和基本概念等方面了解一下Docker:

1、Docker的简介

Docker不仅仅是一个容器,它更是一个开源的技术平台,如今很多微服务都离不开Docker。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。如今Docker的生态已经非常的成熟和强大。

2、Docker的发展历程

6b4bfd539407ed21d187a3a16c4ed7f557396a3b

Docker是站在巨人的肩膀上才有了今天的成功,2004年的时候在Solaris里面就开始有容器的概念了。2008年LXC(Linux Containers)发布了第一套完整的Linux容器管理实现方案。2013年的时候dotCloud公司内部创建了Docker项目,随后又将Docker开源,dotCloud公司也因Docker的发展而改名为Docker公司。2016年Docker公司发布了Docker Enterprise Edition(EE)和Docker Community Edition(CE)两个版本。

3、Docker取得的成绩

截止到目前,Docker已经变得非常流行,在整个GitHub上排名非常靠前。从2013年Docker的发布到如今,在全球有超过1400万主机安装了Docker,基于Docker所做的服务也超过了90万个,超过120亿的镜像被pull,而且使用Docker的场景还在不断地增加。作为一个开源项目,Docker的成功离不开Docker爱好者的帮助。

4、Docker的基本概念

1、image(镜像):主要用来构建container的只读模板。包含了container启动所需的所有信息,例如运行的程序和配置、数据等。

2、container(容器): 负责应用程序的运行,以及它们对应的运行环境。是根据images构建,会在顶层创建读写层。

3、Engine(引擎):Docker架构中的运行引擎,同时也是Docker运行的核心模块。它扮演Docker container存储仓库的角色,并且操纵管理容器。

4、repository(仓库):集中存放image的地方

5、Registry(注册服务器):管理repoistory的程序

当了解基本概念之后再去看如下进阶知识:Docker networking、Composing Services Using Compose、Docker Logging、Docker Debugging And Troubleshooting、Docker API、Docker Security等等。另外还有很多Docker的相关资料可以从以下网址获得:

1、Docker documentation:

2、Docker training:

3、PWD training: 

4、Docker学习路线图: 

Docker进阶心得

随着Docker的应用场景越来越多,学习和使用Docker是非常有必要的,那如何才能学习和掌握Docker的使用呢?下面是我对学习和使用Docker的一些心得体会:

1、轻装上阵

对于初学者来说,从最简单的开始学起,例如pulling和pushing。pull一个项目到image,做些变更,打个tag,再push到Dockerhub,这样对初学者来说是非常有帮助的,因为Docker很多基本知识实际上是基于Linux的知识。

2、学习Docker网络

Docker网络是一切基础,大多数Docker操作实际上都跟网络有关的,例如跨主机容器间如何互相访问、如何设计高可用的容器服务、如何提高容器服务的宽带利用率和减小延时、服务如何快速扩容并减小对系统的影响。围绕这些问题不断学习Docker,你将对Docker有更深刻的理解。

3、学习Docker存储

Docker的存储很难也很重要,当你使用Docker的时候将会面临aufs、devicemapper 和 overlay2该如何选择、top writable layer具体是什么、镜像和容器区别在哪里、镜像Cope on write怎么弄、共享存储如何设计等一系列问题。围绕这些问题,从graph drivers、volumes和registry三个方面去学习Docker存储,你会取得一个更大的进阶。

4、学习Docker安全

8e051d58a622e303207262f2956875c276b7411d

很多人都认为容器跟虚拟机比起来不安全、Docker安全是个大问题。这其中有基于Linux系统的安全、Docker本身的安全和镜像的安全。其实只要在你做Docker设计的时候,从这些安全方面进行考虑,是可以使得Docker更安全的。Docker公司内部也有一些建议,例如对镜像进行签名、扫描,对外不要暴露太多的端口,主机不要暴露远程开放等,对客户端和服务端之间的通信进行加密等等。

ddc8d1be607f368184247b584e9a87bc376e52ff

从技术角度来说,当你掌握以上内容之后还是不够的,你会发现更大的话题,例如如何创建高效的镜像、监视整个系统、在CI/CD和serverless中利用Docker等等。有句话叫做:Learning is better when it's social。Docker本身是一个开源技术,因此对大家来说,如果想技术进阶,最好是加入这个社区,对社区进行贡献有以下四种方式:

1、加入例如Docker community的slack channel或者阿里云的云栖社区等一些其它论坛;

2、参加一些Docker活动。例如Dockercon活动,这个活动汇聚了世界上很多对Docker有着丰富经验的人,他们经常会在活动中发布自己的观点和做出自己的贡献。

3、参加本地的meet up。国内很多公司都会不定时的组织meet up, 如果有机会跟有经验的大年探讨问题,这也是一个非常好的机会。

4、关注Docker公司的公众号号:Docker公司。里面会经常发布一些最新的Docker信息动态。

在今年Docker公司也推出了一个Docker认证,具体可在Docker公司官网查看,通过这样的认证对技术的进阶也是一种很好的见证。

本文由云栖社区志愿者小组黄小凡整理,毛鹤审校。编辑:郭雪梅。

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

你可能感兴趣的文章
如何在 Linux 中创建一个共享目录
查看>>
分布式TCP压力测试工具 tcpcopy
查看>>
《术以载道——软件过程改进实践指南》—第1章1.1节对CMMI的基本认识
查看>>
geohash vs PostGIS
查看>>
Seven Microservices Anti-patterns
查看>>
Vertica的这些事<十一>—— Vertica 管理
查看>>
CSS3 overflow-x 属性
查看>>
联想G480类似没有小键盘开关的机器
查看>>
【云栖大会】人工智能:智,在云端
查看>>
Docker基础技术:Linux Namespace【上】
查看>>
MySQL的binlog数据如何查看
查看>>
应对海量并发请求,首席布道师谈微服务的应用架构设计
查看>>
MySQL · 捉虫动态 · event_scheduler 慢日志记错
查看>>
angular.js 嵌套路由
查看>>
mysql远程连接数据库很慢
查看>>
017-封装-OC笔记
查看>>
NSArray数组
查看>>
博客导航——一站式搜索(所有博客的汇总帖)
查看>>
二分搜索及其扩展
查看>>
玩转git分支
查看>>