美国18一19DOCKER,美国1819

http://www.itjxue.com  2023-01-21 21:59  来源:未知  点击次数: 

Docker崛起,如何对待这个“坏孩子”

不久前,Docker官方公布的数据显示,全球已有46万个应用Docker 化,并且实现两年增长3000%。以Docker为代表的容器技术在发展速度上,业已超过了曾经的虚拟化技术和云计算技术。

或许也正因如此,2015年被称为Docker野蛮扩张的一年,先后通过了OCI和CNCF 两大标准组织的确立,更是在中国引发了如火如荼的Docker 创业之风,出现了阿里百川、网易蜂巢等大批基于Docker的容器云。诞生于2013年的Docker技术,让那些成熟的云计算服务突然显得老迈、迟缓且落伍,而国内外的云计算巨头们又是如何对待这个坏孩子呢?

Docker崛起,或受益于羸弱的传统PaaS服务

有关“PaaS已死”的说法由来已久,既不如IaaS那样灵活自由,又不如SaaS那样可以直接推向消费者。一个似乎可以用来佐证的事实是,DotCloud作为Docker技术的缔造者,在今年年初宣布倒闭,Docker的繁荣间接地导致dotCloud在PaaS平台上的衰败。

PaaS服务的羸弱在一定程度上受限于不成熟的框架和工具,导致有些PaaS解决方案让原来在IaaS上很容易实现的事变得更加复杂。一方面,企业应用环境多样化,单一PaaS平台很难满足企业客户的多样化需求。另一方面,PaaS没有像Openstack类似的标准,市场上的很多PaaS厂商都提供自己的私有API开发接口,并且互不兼容,导致企业在某个PaaS平台上开发的应用,很难移植到另一平台上。对很多工程师和程序员来说,他们更愿意作为PaaS的构建者,而非PaaS的使用者。企业则寄希望于PaaS来消除技术“周边环境”的不利因素,让开发者有更多的精力专注于开发。这种需求和初衷的不相符,尽管让传统 PaaS厂商在2015年依旧取得了不菲的成绩,但容器技术的热火朝天,或多或少反衬出了传统 PaaS提供商的些许落寞。

而被翻译成“码头集装箱”的Docker服务,允许开发者在Docker环境下,按一定的打包标准生产程序,生产出来的标准化程序被装进标准化的容器(Container)里。这便保证了开发环境、测试环境、生产环境的一致性。此外Docker还具有资源隔离的特点,不同来源、不同种类的容器内放着运行应用所需的完整用户环境空间,比如程序、组件、运行环境等,对某一容器的改动不会影响其他容器。而且,相比于传统的虚拟机,Docker的启动和部署非常快,具有轻量化的优势。

于是乎,Docker作为开源届的绝对“网红”,很多 PaaS 和 IaaS 厂商在2015年甚至更早开始宣布支持 Docker,包括Deis、Flynn、Tsuru、Dawn和Octohost等行业新贵,以及Cloud Foundry和OpenShift等第二代PaaS主力。

主角还是配角,愈演愈烈的云容器之争

Synergy Research最近发布的一项报告显示,2016年第一季度全球云服务市场收入达到70亿美元,但AWS、微软、IBM和谷歌依旧是市场的垄断者,AWS虏获了31%的云服务市场,微软、IBM和谷歌则分食了22%的市场份额。此外在市场增长率上,四大巨头也远超其他云服务玩家,特别是微软和谷歌的市场增幅均超过了100%。

相比于四大巨头在IaaS和PaaS服务上的跑马圈地,Docker作为新兴的服务模式,被云服务领域的追赶着和创业者视为“颠覆”云计算格局的机遇,至少在造势营销上是这样。各云计算巨头和明星玩家对容器似乎都展示出了欢迎的态度,可Docker是主角还是配角,中美的互联网玩家们却给出了不同的答案。

从美国的云计算圈来看,不少云计算创业者成了Docker的忠实拥趸,这在前面已经有所举例,但云计算巨头们却有着各自的衡量。

2015年,Google 和 RedHat 联盟以 Kubernetes 1.0 为阵地宣告了大规模容器编排与管理领域的领主地位。不久后,微软、IBM、VMware、Docker、CoreOS以及SaltStack等多家公司纷纷加入了Kubernetes社区,业已成为当下最受欢迎的容器集群管理系统。

自从2014年6月份起,微软已经允许用户在Azure的Linux上运行Docker应用程序。不久前Docker官方对外宣布面向微软Azure、AWS、Windows 10和 Mac全面推出新的Docker测试版。近日更是传出了微软试图40亿美金收购Docker的消息。

事实上,亚马逊、思科、Vmware等也都宣布支持Docker。不过在这些云计算巨头的眼中,Docker不过是一个容器引擎,当CoreOS如谷歌分道扬镳推出名为Rocket的容器引擎后,谷歌照旧向其抛出了橄榄枝。未来或许还会出现其他Docker的竞争对手或取代者,而Docker们不过是云计算巨头们维持市场地位的行业工具,远未成为影响云计算现有格局的关键力量,至少在市场份额上,容器在未来很长一段时间内还不能和IaaS服务相提并论。

相比之下,以 Docker 为主的容器技术在国内的发展势头要更为凶猛,不仅吸引了阿里、腾讯、网易、新浪等互联网巨头,一些在亚马逊、谷歌、Vmware有过工作经验的工程师也纷纷投入的容器云创业的大潮中来。综合来看,国内云计算厂商在容器云上的布局可以细分为三种形态:

其一,阿里、华为等IaaS领域的行业先驱。以Docker为代表的容器服务在2015年势如野火,被它吸引了不只是创业者,还有在IaaS领域的诸多云计算厂商,阿里和华为就是两个典型的例子。先是阿里百川在TAE的基础上使用了Docker技术,随后阿里云也推出了基于Docker的容器服务。华为则在去年12月推出了基于Kubernetes和Docker技术打造的CCE容器云。不过,这类厂商的主要业务仍集中在IaaS领域,也多把容器云归为新型PaaS服务。对于瞬息万变的云服务市场,即便是行业巨头也不愿错过任何一个机会。

其二,网易、新浪等踏入云服务市场的第二梯队。对于网易、新浪等具有十多年研发运营经验的老牌互联网企业,在云计算的萌芽期便成为云服务的使用者和推动者,但在近两年才完成了私有云到公有云的过渡,而容器云就是其所青睐的云服务之一。以网易蜂巢为例,这一基于Kubernetes容器集群管理技术打造的容器云,在2015年上线后便成受到市场追捧。原因似乎不难理解,这些企业本身就是容器云的重度使用者,并拥有自研IaaS等优势资源做支撑。而从另一方面来看,相比于竞争已经十分激烈的IaaS,容器云被这类企业进军云计算基础设施服务的一条绿色通道。

其三、时速云、灵雀云等Docker红利下的创业者。用“Docker红利下的创业者”来形容这些厂商似乎并不为过,正如前面所说不少有国外云计算公司从业背景的工程师们看到Docker的崛起后纷纷回国创业,并一度成为国内容器云行业的主流。尽管容器服务的用户规模和客单价远不及IaaS,但在针对当前IT系统的资源管理复杂、运维成本高、产品迭代效率差、微服务架构实施困难等问题上似乎是不错的解决方案。或许也正因如此,资本依旧对这些容器云领域的创业者纷纷报以厚爱。

此外,不少厂商以CaaS(容器即服务而非通讯即服务)来形容容器云,并被誉为下一代云计算。可就目前来看,Docker的处境似乎并不十分乐观,至少在国内面临着如何落地的考验。

  下一代云计算?Docker该如何落地

前两年火爆的是Openstack,近两年受宠的当属Docker,融资、并购、发布会、行业峰会,从云服务厂商到媒体无不对Docker表现出了近似膨胀的热情。然而,在高歌Docker和容器云一系列优点的同时,却鲜有人谈及落地的问题。

一般来说,很多企业尤其是中小企业,所需要的不是如何将Docker或其他容器技术移植到公有云或私有云上,而是看到了容器云的微服务化、运维流程的标准化、持续集成部署的自动化等特点,希望通过容器云服务来降低产品研发成本,并最大程度的降低系统风险等。事实上,这类企业也正是网易蜂巢、时速云等容器云产品的目标用户。没有人知道这个市场到底有多大,围绕Docker开展创新服务的公司却开始“你方唱罢我登场”。这便注定容器云市场在未来将迎来一场恶战,目前似乎已经有所端倪。

就目前而言,不管是阿里、腾讯等云计算巨头还是诸多的创业者,在容器云的技术方面并没有拉开太大的距离,无非是稳定性和易用性方面的些许差别。由此便导致,当前容器云市场呈现出拼价格、拼渠道以及拼运营的姿态。可以预见,在不远的将来,容器云市场势必会迎来一场淘汰赛,而能够解决Docker落地的云服务厂商才会是最后的赢家。

不管怎样,Docker 已经成为云服务市场一枚极具意义的战略性棋子,无论是在服务层面还是系统层面,云计算的未来似乎已经被Docker这个坏孩子占据了一席之地。

Docker:解决docker-compose网段路由冲突,docker-compose自定义网络

摘要: Docker , 网桥 , Linux , 路由 , 网关

网上这个问题出现的挺多的,我也总结一下,因为里面涉及到的网络基础知识比较多的,正好我一直不懂这一块,需要大补

问题 :openvpn挂vpn连接远程主机,发现无法ping通远程主机IP:172.20.2.52,以前一直可以远程登录

先 route 一波查看一下路由表,看一下主机访问172.20.2.52的路由路径

发现和目标IP 172.20.2.52相似的目标网段为 172.20.0.0 ,看后面的接口为 br-3b2a750ddc03 ,也即是说数据被转发到这个接口下,这貌似是个docker创建的网桥,怀疑是docker网桥占用了172.20网段,查看以下docker网络

看到3b2a750ddc03为命名为milvus的docker网络,原来是milvus的容器创建的网桥,进一步检查网络内部信息

可以看到所属的容器id和容器名

可见这个 网络接口下目标主机只有172.20.0.2,172.20.0.3,172.20.0.4三台主机IP,以及172.20.0.1网关,因此ping 172.20.2.52根本ping不通 。

milvus的三个容器虚拟IP以及网关服务占用了172.20网段,openvpn创建的网段也是172.20.0.0,因此在路由中产生 网段冲突 ,无法转发到openvpn的对应网络接口,同理从172.17、18、19、20都是docker创建出来的网络接口和网段,如果有其他网络服务处在相同网段可能导致无法路由到

在路由寻址时会根据目标IP在路由表中相同网络ID(网段)的记录,根据该记录将数据转发给下一个路由器,如果路由表中存在多条相同网络ID的记录,根据最长匹配算则最吻合的一个,因此增加一个 172.20.2.0/24 的目标网段即可,使用 route add 进行添加,添加目的地网段为172.20.2.0/24,网络接口为tun0

tun0是openvpn创建的网络接口,使用ifconfig查看

再看一下路由已经成功添加了一条细路由

此时再ping 172.20.2.52已经可以ping通

另一种方法是找到docker网桥对应的容器应用之后直接删除容器,则对应的网络接口和路由都会删除,进入milvus工程目录使用docker-compose停止和删除容器即可

查看route路由表172.20.0.0网段已经消失,ifconfig,docker network ls都已经查不到对应的网络接口,此时再重启openvpn即可

docker-compose默认会给每个应用从172.18.0.0依次往后匹配网段,只要容器没有被删除则一直占用网络,如果删除后重启则依次采用新的网段之前的不再使用,因此很容易造成路由冲突,可以在单个docker-compose.yml文件中增加networks配置,设置网段为10.103.0.0/16

重启docker-compose,此时路由和docker网络都切换为了10.103.0.0/16网段

修改全局docker网络配置,docker自动分配的网段使用12.11.0.0/16,每个子网掩码划分为 255.255.255.0

重启docker

再重新启动docker-compose,项目切换为指定的网段

不仅是docker-compose,docker run启动的容器的虚拟IP也变更为指定的网段

网关 :网关是一个逻辑概念,网关是一个结点,是一个网络连接到另一个网络的关口, 实质上是一个网络通向其他网络的IP地址 。两个不同网段的网络结点之间通信需要使用网关,如果网络A的主机发现目标主机不在本地网络中就会把数据包发送到A的网关,再转发给网络B的网关,再转发给网络B。

路由器 :路由器是物理设备,路由器可以作为网关使用,通常指的网关就是路由器的IP。主机1.1要发送数据包给主机4.1,因为IP地址不再同一网段,主机会将数据包发送给本网段的网关路由器A。路由器A接收到数据包,查看数据包IP中的目标IP地址,在查找自己的路由表,数据包的目标IP地址是4.1,属于4.0网段,路由器A在路由表中查到4.0网段转发的接口是SO接口。于是,路由表A将数据包从SO接口转发出去。到达了网关路由器B,用同样的转发方法,从EO口转发出去,4.1主机接收发这个数据包。

docker-compose中可以设置网络,如果不显示设置网络这些容器都会被加入app_default网络,比如工程目录为test,则启动后的网络名为test_default,使用 docker network ls 可以查看网络列表, docker network inspect network id 可以查看对应网络的配置。如果想要工程有特有的网段以及容器有特有的IP则需要在docker-compose.yml中设置自定义要网络,例子如下

具体的写法是在最下面设置一个工程全局的网络,并且在各个容器服务的最下面引用,在全局下使用subnet设置网段,各容器使用ipv4_address设置IP。重新启动后docker网络已经固定为172.100.0.0/16网段,各容器IP也改为自定义IP

当TCP/IP需要向某个IP地址发起通信时,它会对路由表进行评估,以确定如何发送数据包。评估过程如下:

1 .目的IP地址和路由表中每一个路由项的网络掩码进行相与计算,如果相与后的结果匹配对应路由项的网络地址,则记录下此路由项

2 .当计算完路由表中所有的路由项后,择优选择其中一条路由规则

每一个linux系统中都具有IP路由表,它存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息,本地计算机上的任何TCP/IP通信都受到路由表的控制,linux通过route 命令查看 Linux 内核的路由表。

使用案例:

(1)查看所有driver=bridge的docker网络

(2)删除已经无效的网络

如果哟啊删除正在使用的网络,需要先断开连接再删除网络

(3)清理无效网络,想通过这种方法清除历史曾经使用过的网段,但是没有达到预期效果,以后再研究

专访阿里云资深专家易立

专访阿里云资深专家易立

集装箱曾经改变全球贸易的供应链,Docker也将改变软件的供应流程。

4月26日的云栖大会·南京峰会上,阿里云资深专家汤子楠发布了飞天专有云敏捷版(Apsara Stack Agility),此前美国Docker公司首席执行官Ben Golub 在曾在DockerCon 2017上宣布过这个消息。

这是阿里云和Docker公司合作之后的产物,是国内第一个支持Docker官方企业版(Enterprise Edition, EE)的容器类产品,包含从容器的创建到运行以及镜像的全生命周期管理,可以部署在企业自有数据中心环境内,特别适用于企业专有云及混合云场景。

据阿里云方面介绍,阿里巴巴集团内部运用容器技术已有六年时间。2016年,阿里电商核心应用的基础平台全部转向Docker,并通过天猫双11进行了技术验证。

容器技术领域,最为著名的公司,无疑为Docker,后者也是一个容器管理引擎。与传统虚拟机相比,容器技术是操作系统级别的虚拟化技术,更为轻量。36氪曾经介绍过,Docker则是在容器技术的基础上额外提供了标准镜像格式。Docker就像被标准化的容器,相当于云计算领域的“集装箱”,可以承载后端的各种技术。

自从2013年开源的Docker项目发布之后,其以惊人的速度被企业采用,已成为容器运行的事实标准。据Docker公司公布的数据,截止目前为止,Docker Hub上的镜像下载量,已经达到120亿次,去年6月份这个数据是60亿;镜像总量超过了90万,去年只有40万。

国外许多大公司都积极拥抱Docker,包括AWS、IBM、HPE和微软等。国内网易、腾讯、阿里等主流云计算厂商,都提供基于Docker的容器服务。2015年,阿里云就在Docker社区版的基础上推出了阿里云容器服务,华大基因、上海证券交易所、中信集团、ofo共享单车、深圳码隆科技等多家企业均是容器服务的客户。去年10月,Docker与阿里云达成合作,将通过后者落地中国。

阿里云非常看好Docker的前景,认为Docker也将像集装箱一样,是改变世界那只箱子。就像集装箱改变全球贸易的供应链一样,Docker将改变软件的供应流程。根据阿里云去年面向技术人员所做的调查,其中超过87%的人表示,有意愿现在使用或者可能在未来六个月内使用Docker的架构。

据阿里云资深专家易立介绍,Docker技术有三方面的优势。

首先是敏捷。由于Docker的轻量级,就意味着同一硬件上可以运行更多的应用,它可以将系统利用率提高5-10倍;而且因为轻量,它的启动速度非常快,当公司业务出现峰值时,可以通过容器快速部署。容器技术也能实现产品的快速迭代,据调查,Docker对软件版本发布频率有高达13倍的平均提升。

然后是可移植性。在传统架构下,开发人员交付应用之后,运维人员需要部署合适的运行平台。两个环境间的差异往往会导致,应用在测试环境下正常运行,上线之后却经常会出问题。Docker则能把应用和应用环境一同打包,开发完成之后,运维人员可以直接使用这个容器来部署代码。

经过容器化的应用可以部署在任何地方,就可以避免原来因为环境差异带来的问题,同时也可以无缝迁移云,不用锁定某个云服务商。用户在自己的笔记本电脑上开发了一个应用,容器化之后可以不加修改地发布到云上。

第三是可控性。容器使得大规模互联网化运维变得可能,原来,企业的IT系统用久了,经过多次版本更新,里面的东西变得不可知,一旦出现问题需要花大量的时间排查。如果用容器化的方式交付应用,则线上每一个版本都可以复现,所有的东西都可以回溯。一旦原来的IT人员离职了,其他人也更容易理解应用程序是如何创建和工作的。

此外,易立指出,促进了开发和运维的一体化之外,Docker还有利于企业应用的现代化改进。传统应用往往是单体架构,如企业原有的CRM、ERP等大型应用,但随着新需求增加,更新和修复大型这类应用变得越来越困难;为此出现了微服务架构,其提倡将大应用拆解分一堆小服务,彼此协调提供功能,单个小服务可以独立部署、测试和运行。云原生的企业应用的架构一般是后者,Docker这套执行环境就非常适配云原生应用。

根据阿里云去年的调查,技术人员使用或考虑使用Docker,大部分出于上述原因考虑。

虽然容器技术成为主流,将会是未来的趋势,但目前在国内仍未大规模普及。企业要使用该架构,依然需要付出一定的迁移和学习成本,可能还会有一定的安全考虑,这也是影响Docker普及的原因。因此,Docker推出了企业版处理类似问题。

据易立介绍,使用Docker架构需要对企业应用容器化,像刚刚说的,云原生应用与Docker非常契合,但不可能所有的应用都是新写的,有的企业应用属于传统架构、没有微服务,需要对现有系统做改造和迁移。

因此,针对传统的企业应用,Docker推出了传统应用迁移技术,可以一键转换虚拟机镜像,将原来的企业化应用转化为可以用容器化的方式交付和运维的应用。企业可以有两种路径,可以先将整个大应用容器化,再逐渐转化成微服务架构;也可以先将企业拆成微服务架构,然后容器化。

此前,之前Docker企业版未落地中国,社区版由开源社区来维护,每个月有个更新,三个月发布一次稳定版,这样的好处是版本演进速度很快,但对企业而言却带来很大的运维压力,需要经常大规模对Docker版本进行修复和升级,企业需要有极强的软件研发能力,并不是所有的企业IT部门都有将这种技术产品化的能力。

全球有不少公开的'Docker镜像库,其中Docker Hub是最大的公开仓库,开发者可以在上面共享和拉取Docker镜像,生成容器化的应用。但谁都可以往仓库推送镜像,就意味着无法保证安全风险。

针对此,Docker推出了Docker Store,上面的容器镜像全都由Docker认证,确保安全性,包括通过安全扫描,确定没有不合规的代码;同时通过签名“密封”镜像,确保其不可篡改。这就有点像一个容器版的Apps Store,里面所有的镜像都通过Docker审核。

总而言之,Docker企业版面向企业的,是一个完整的场景,而不是一个技术。它有增强的编排能力,有完整的控制台界面,里面的操作都可以安全地使用,它在社区版上增加了面向企业用户的管理和安全能力,同时提供了经过认证的操作系统、容器和插件。中国Docker企业版的技术支持,将会由阿里云和Docker联合提供。

说到阿里云跟Docker的合作,包括三个层面:Docker会借助阿里云的云基础架构进入中国,后者将为Docker Hub提供中国运营的基础服务;阿里云会推动Docker企业版的落地,联合提供销售和技术支持;阿里云成为Docker认证的云平台,Docker的认证插件和认证容器会验证在阿里云上的稳定可运行性,确保客户在阿里云上使用Docker的体验。

目前阿里云提供公共云版、飞天专有云版和飞天专有云敏捷版三种Docker的部署形态,客户也可以选择在公共云上使用,也可以自己部署。

自从容器技术面世之后,其生态内也出现了不少创业公司,国外涌现不少专注容器基础服务、网络、安全、存储和监控等某一细分领域的创业公司;在国内,除了阿里云以外,也有大批围绕Docker技术提供服务的创业公司,提供云端的快速部署和管理能力,比如36氪报道过的时速云、数人云、灵雀云、才云科技、轻元科技。阿里云整合了Docker企业版的飞天敏捷版,跟他们可能存在一定竞争关系。

才云科技CEO张鑫曾经说过,Docker本身一定不是核心竞争力,而真正的核心是如何能让用户或企业“无痛”地从非Docker的环境迁移至Docker化的世界,以及如何帮助用户在新的Docker化的世界里建立一整套的开发运维体系。

阿里云也表示,企业需要的,并不仅是Docker这个技术,而是一整套应用的解决方案。用户最终选择谁,取决于谁的服务更完整更好。不过,他们认为,国内容器市场还在成长阶段,他们和这些公司应该是在共同培育市场。

;

docker怎么读

docker,英 [?d?k?(r)]? ?美 [?dɑ?k?r]? 。

n.码头工人。

复数: dockers。

例句:

At?the?end?of?the?second?world?war?he?was?working?as?a?docker

第二次世界大战结束时,他是一名码头工人。

Some?claimed?that?the?docker's?union?fronted?for?the?smuggling?ring.?

某些人声称码头工人工会是走私集团的掩护所。

The?seamen?went?on?strike?in?sympathy?with?the?dockers.

海员举行罢工,以表示对码头工人的支持。

On?September?18?the?dockers?again?came?out?on?strike.

9月18日,码头工人再次举行罢工。

With?the?help?of?the?Chinese?dockers,?the?foreign?seaman?got?back?the?watch?he?had?lost.

在中国码头工人的帮助下,那个外国海员找回了他丢失的手表。

(责任编辑:IT教学网)

更多

推荐鼠标代码文章