Docker
self-motivation
专注LINUX系统与性能分析优化
展开
-
docker网络(三) ------------ 端口与DNS
容器网络容器使用的网络类型对于用户而言是透明的,无论底层是网桥,overlay,macvlan或者使用特定的网络插件.从容器的视角看,它有一个自己的IP地址,自己的网络接口,网关,路由表,DNS服务器以及其它与网络相关的细节.发布端口默认情况下,当使用docker create或者docker run创建一个容器时,它不会向外界发布任何端口.要使端口在docker容器之外可以提供服务,你需要使用–publish或者-p选项.这会创建一条防火墙规则将容器内的端口映射到docker所在的宿主机.下面是一些原创 2020-11-29 11:29:29 · 470 阅读 · 0 评论 -
docker网络(二)-----------iptables
Docker和iptables在linux上,docker通过设置iptables规则来实现网络隔离.这属于内部实现,你也不应该插入iptables规则来修改docker规则.但是,如果你想在docker管理之外添加自己的规则,你可能就需要了解这些细节了.如果你的docker运行在连网的主机上,你可能想通过iptables限制对容器或者其他服务的未受权的访问.本篇文章会介绍如何实现这些功能及需要注意的细节.在Docker规则之前添加iptables策略docker会添加"DOCKER-USER"原创 2020-11-08 19:33:48 · 1453 阅读 · 0 评论 -
docker网络(一)--------------macvlan
docker网络系统文章用于讲解docker几种网络模型和通信方式。实验环境为下面的组网,2台VM连接在一台交换机上,在一个2层网络中。分别在2台VM上启动容器,通过不同网络模型使容器间互通。macvlan是一种网卡虚拟化技术,在现有网卡上虚拟出一块子网卡,子网卡有自己 的MAC地址,共享底层物理网卡更详细的macvlan介绍,可以参考这篇文章:https://www.jianshu.com/p/2b8b6c738bf6分别在VM1,VM2上创建macvlan网络,都属于17..原创 2020-11-07 20:39:47 · 557 阅读 · 2 评论 -
使用Compose变量定制Docker网络
使用[Docker 多节点网络]来创建虚拟网络,把容器接入虚拟网络,能实现应用中所需要的网络拓扑。具体来说,Bridge网络能用来创建单节点网络,Overlay网络能创建多节点网络。通过这样给应用定制专用网络,能为容器提供绝对的隔离性。Docker Compose的目标是实现单节点网络,通过用--x-networking 来创建一个应用程序独有的桥接网络,如果应用程序需要多节点部署,可以使用D转载 2017-05-08 23:08:10 · 2294 阅读 · 0 评论 -
一篇文章带你了解Flannel
【编者的话】Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。这次的分享内容将从Flannel的介绍、工作原理及安装和配置三方面来介绍这个工具的使用方法。第一部分:Flannel介绍Flannel是CoreOS团队针对Kubern转载 2017-05-11 21:00:35 · 1031 阅读 · 1 评论 -
docker镜像存储详解
镜像来源镜像需要存在于本地仓库中才能用其启动容器,镜像通常有以下三种来源:l 使用dockerfile构建l 导入从其它仓库save的镜像l 从远端仓库pull镜像 其它还有对容器进行commit等,但它们的原理都包含在了以上3种方式之中。 无论采用哪种方式,镜像的最初来源一般都是通过dockerfile构建而来,因此首先分析dockerfile构建镜像的过程原创 2017-11-11 15:00:15 · 3090 阅读 · 0 评论 -
从零制作Docker镜像的脚本
github地址:https://github.com/happyAnger6/DockerTools.git脚本目的:Docker使用过程中,有时候可以将许多重复工作用shell脚本来简化,如pipework.该库的作用也是如此。工具介绍:目录:pack_images:打包相关工具使用场景: 如果我们想从空的镜像开始制作一个只包含需要工具的镜原创 2017-04-01 23:52:30 · 1974 阅读 · 0 评论 -
Docker源码分析(二)-------代码结构
http://www.anger6.com/?p=505再开始分析docker源码之前,我们先来看下代码的目录结构。现在docker分为商业版和社区版两个版本,社区版docker-ce的github地址如下:https://github.com/moby/moby下载好代码,可以看到moby目录结构如下:api:顾名思义,api目录是docker cli或者第三...原创 2019-06-09 21:56:44 · 1329 阅读 · 0 评论 -
docker镜像存储实现
为什么要写这篇文章?网上已经有很多讲docker镜像存储原理的文章了,这篇文章还有必要吗?网上关于docker镜像的文章大都偏原理,像什么镜像是分层的,是只读的,容器除了镜像的只读层还有自己的可写层等等。这些原理说出来大家好像都懂,但好像什么也没学到。因此我写了这篇偏实现的文章,讲述docker是如何利用联合文件系统存储容器镜像,以及如何建立容器的文件系统。学习这篇文章之后,你将能够:...原创 2019-08-05 22:13:00 · 330 阅读 · 0 评论 -
Weave实现跨主机容器互联
Docker的原生网络支持非常有限,且没有跨主机的集群网络方案。目前实现Docker网络的开源方案有Weave、Kubernetes、Flannel、Pipework以及SocketPlane等,其中Weave被评价为目前最靠谱的,那么这里就对Weave的基本原理及使用方法做个总结。简介Weave是由Zett.io公司开发的,它能够创建一个虚拟网络,用于连接部署在多台主机上的Docke转载 2017-04-26 00:28:54 · 973 阅读 · 0 评论 -
docker网络方案之weave原理篇
上篇文章http://blog.csdn.net/happyanger6/article/details/71104577介绍了weave及其安装和使用,这一篇讲解其实现原理,使读者可以有更深入的理解。理解Weave网络如何工作一个Weave网络由一系列的'peers'构成----这些weave路由器存在于不同的主机。每个peer都由一个名字,这个名字在重启之后保持不变原创 2017-05-07 23:01:05 · 3813 阅读 · 0 评论 -
Docker背后的知识(一)-------------namespace
Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制(copy-on-write)实现了高效的文件操作。1.namespace资源隔离原创 2017-03-02 23:15:56 · 914 阅读 · 1 评论 -
Docker 存储原理
Docker 存储可以分为分层文件系统和卷,本文将介绍 AUFS 分层文件系统。1. 基础知识1.1 Linux 的 rootfs 和 bootfs 一个典型的 Linux 系统要能运行的话,它至少需要两个文件系统:boot file system (bootfs):包含 boot loader 和 kernel。用户不会修改这个文件系统。实际上,在启动(boot)过程完成后转载 2017-03-24 00:18:25 · 1378 阅读 · 0 评论 -
理解Docker单机容器网络
Docker 容器是近两年最 火的IT技术之一,用“火山爆发式“来形容Docker的成 长也不为过。Docker在产品服务的devops 运维、云 计算(CaaS)、大数据以及企业内部应用等领域正在被越来越多的接受和广泛应用。Docker技术的本质在于提升计算密度和提升部署效率,高屋 建瓴的讲,它的出现符合人类社会对绿色发展的追求,降低资源消耗,提升资源的单位利用率。不过经历了两年多的发展转载 2017-04-03 09:49:11 · 1190 阅读 · 0 评论 -
pipework使用介绍
pipework是Docker公司工程师Jerome Petazzoni在Github上发布的名为pipework的工具。号称是容器网络的SDN解决方案,可以在复杂的场景下将容器连接起来。它既支持普通的LXC容器,也支持Docker容器。其命令行格式如下:pipework:Syntax:pipework [-i containerinterface] [-l loca原创 2017-04-03 21:20:08 · 5580 阅读 · 0 评论 -
Docker网络(一)---------原生支持
在部署大规模Docker集群时,网络成为了最大挑战。纯粹的Docker原生网络功能无法满足广大云计算厂商的需要,于是一大批第三方的SDN解决方案如雨后春笋般涌现出来,如Pipework, Weave, Flannel, SocketPlane等。2015年3月,Docker宣布收购SocketPlane,一个新的Docker子项目"Libnetwork"开始酝酿。一个月后,Libnetwo原创 2017-05-01 20:41:47 · 1962 阅读 · 0 评论 -
Docker网络方案初探
随着容器的火热发展,数人云越来越多的客户对容器网络特性要求也开始越来越高,比如:一容器一IP;多主机容器互联;网络隔离;ACL;对接SDN等等。这次主要跟大家聊聊Docker的网络方案,首先是现有容器网络方案介绍, 接下来重点讲解Calico的特性及技术点,作为引申和对比再介绍下Contiv的特性,最后给出对比测试结果。转载 2017-05-01 22:26:57 · 1498 阅读 · 0 评论 -
容器SDN技术与微服务架构实践
Docker的横空出世很大程度上推动了容器技术的热度和发展。容器技术和传统的虚拟化技术有很大的不同,具体包括:首先是相对于传统的虚拟机,以前一个虚拟机里做的事情,要打散成很多个容器去做,它们各自的职能会更少;第二点是会造成以前一个虚机的IP会变成很多个容器的多个IP,容器之间的关系会变得更加复杂;第三点是整个网络中的网络端点数量呈现一个上升的趋势;第四点是容器的生命周期其实会更短。此外,容器由于其转载 2017-05-01 23:34:51 · 1573 阅读 · 0 评论 -
docker网络方案之weave实战篇
什么是weave?Weave通过创建虚拟网络使docker容器能够跨主机通信并能够自动相互发现。 通过weave网络,由多个容器构成的基于微服务架构的应用可以运行在任何地方:主机,多主机,云上或者数据中心。应用程序使用网络就好像容器是插在同一个网络交换机上一样,不需要配置端口映射,连接等。在weave网络中,使用应用容器提供的服务可以暴露给外部,而不用管它们运行在何处。原创 2017-05-05 22:24:43 · 7325 阅读 · 0 评论 -
Go实现控制任程序的生命周期
runner/runner.go:package runnerimport ( "errors" "os" "os/signal" "time")type Runner struct { interrupt chan os.Signal complete chan error timeout <-chan time.Time tasks []func(int)原创 2017-04-23 23:49:05 · 1290 阅读 · 0 评论 -
Docker命令介绍及实战
对Docker的命令即组件关系作下梳理,以备不时之需。子命令分类子命令Docker环境信息info,version容器生命周期管理create,exec,kill,pause,restart,rm,run,start,stop,unpause镜像仓库命令login,logout,pull,push,search原创 2017-03-19 21:00:06 · 1391 阅读 · 0 评论