Docker(六):Docker网络配置进阶
1、Docker集群网络配置之Weave
Weave是Github上一个比较热门的Docker容器网络方案,具有非常良好的易用性且功能强大。仓库地址:https://github.com/weaveworks/weave.git。
Weave由两大主要组件组成:
Weave:用户态shell脚本,用于安装Weave,将container连接到Weave虚拟网络,并为他们分配IP。
Weaver:运行于container内,每个Weave网络内的主机都要运行,它是一个Go语言实现的虚拟网络路由器,不同主机之间的网络通信都依赖于Weaver路由。
Weave简单使用:
Host1
启动Weave:weave launch
启动容器:weave run 10.2.1.1/24 -t -i ubuntu bash
Host2
启动Weave并连接Host1:weave launch $Host1-IP
启动容器:weave run 10.2.1.2/24 -t -i ubuntu bash
测试两个容器之间可以通信。
Weave其他命令:
weave launch [-password] [-nickname]:启动时设置节点之间互通的密码
weave connect $OTHER_HOST_IP:连接其他weave host主机
weave attach IP $ID:将已经运行的容器动态添加到网络,detach命令为剥离
weave ps:查看containers列表
weave status:查看weave状态
Weave缺点:
不支持服务发现,主机不能动态加入节点网络,只能手动通过weave launch或connect加入weave网络
不支持动态分配IP
2、Docker集群网络配置之Flannel
安装:从https://github.com/coreos/flannel/releases和https://github.com/coreos/etcd/releases分别下载Flannel和Etcd的最新版本二进制包。
解压后将Flannel的二进制文件“flanneld”和脚本文件“mk-docker-opts.sh”、以及Etcd的二进制文件“etcd”和“etcdctl”放到系统的PATH目录下即可。
创建集群:
Host1:IP 172.16.10.189
etcd -name infra0 -initial-advertise-peer-urls http://172.16.10.189:2380 -listen-peer-urls http://172.16.10.189:2380 -initial-cluster-token etcd-cluster-1 -initial-cluster infra0=http://172.16.10.189:2380,infra1=http://172.16.10.88:2380 -initial-cluster-state new
Host2:IP 172.16.10.88
etcd -name infra1 -initial-advertise-peer-urls http://172.16.10.88:2380 -listen-peer-urls http://172.16.10.88:2380 -initial-cluster-token etcd-cluster-1 -initial-cluster infra0=http://172.16.10.189:2380,infra1=http://172.16.10.88:2380 -initial-cluster-state new
查看集群成员列表(任一主机都可):
[root@kvm ~]# etcdctl member list
5b2b3a252a3f1a96: name=infra1 peerURLs=http://172.16.10.88:2380 clientURLs=http://localhost:2379 isLeader=false
70b69a104d137154: name=infra0 peerURLs=http://172.16.10.189:2380 clientURLs=http://localhost:2379 isLeader=true
写入Flannel网络配置
etcdctl mkdir /coreos.com/network/
etcdctl set /coreos.com/network/config '{"Network":"10.1.0.0/16","SubnetLen":24,"SubnetMin":"10.1.0.0","SubnetMax":"10.1.128.0"}'
每台主机都运行flanneld
每台主机重新配置docker
sudo mk-docker-opts.sh -i
source /run/flannel/subnet.env
sudo rm /var/run/docker.pid
sudo ifconfig docker0 ${FLANNEL_SUBNET}
重启docker进程,之后在启动容器,此时主机1和2的容器互通 3、Docker集群网络配置之SocketPlane
仓库地址:https://github.com/socketplane/socketplane
SocketPlane的安装配置比较简单,只需要运行源码目录下的scripts/install.sh就可安装。
会下载SocketPlane和Powerstrip两个镜像,以容器的方式运行SocketPlane主程序。
查看SocketPlane运行是否正常
docker ps #显示socketplane正在运行
socketplane agent logs #日志无异常,满足这两个条件即运行正常
创建socketplane网络:socketplane network create frontend 192.168.0.1/24
创建一个名为frontend,IP段为192.168.0.1/24的子网。
查看当前集群内包含几个子网:socketplane network list,结果以集合的方式的显示
利用socketplane启动容器:socketplane run -n frontend -tid ubuntu:latest bash
进去容器查看网络:docket exec -ti $ID ip addr show
可看到容器自动从frontend子网获取了一个IP,socketplane底层使用consul同步数据,保证IP不冲突
查看socketplane信息:socketplane info
Docker(六):Docker网络配置进阶的更多相关文章
- docker系列之网络配置
docker 网络配置 docker 安装后, 会自动在系统做一个网桥配置 docker0 . 其容器都会分配到此网桥配置下的独立, 私有 IP 地址. 如果你要自己配置桥接, 也可以把 docker ...
- 【爬坑系列】之docker的overlay网络配置(未完,待续)
理论知识储备: 想了解vxlan网络的知识:https://www.cnblogs.com/shuiguizi/p/10923841.html 想了解docker网络的原理知识:https://www ...
- Docker网络配置进阶
Docker启动会默认创建docker0虚拟网桥,是Linux的一个bridge,可以理解成一个软件交换机.它会在挂载到它的网口之间进行转发. 之后所有容器都是在172.17.0.x的网段上,并且可以 ...
- docker 容器间网络配置
创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头. 我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器 ...
- docker网络配置方法总结
docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...
- 高级网络功能(Docker支持的网络定制配置)
网络的高级知识,包括网络的启动和配置参数.DNS的使用配置.容器访问和端口映射的相关实现. 在一些具体场景中,Docker支持的网络定制配置,通过Linux命令来调整.补充.甚至替换Docker默认的 ...
- Docker Network Configuration 高级网络配置
Network Configuration TL;DR When Docker starts, it creates a virtual interface named docker0 on the ...
- Docker 四种网络模式
原文 https://www.cnblogs.com/gispathfinder/p/5871043.html 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络 ...
- 网络配置——Linux运维基础
今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...
随机推荐
- Intellij IDEA热加载更新 IntelliJ IDEA热加载自动更新(Update classes and resources )
定义及分类 1.1 定义 在web开发环境下,所谓热部署,即在不重新部署webapp的情况下,实时将工程代码改动更新到web容器中(例如tomcat).其原理可以类比ajax的作用,即局部刷新工程资源 ...
- js-引用类型-Array
1.数组的操作方法 <html> <meta http-equiv="content-type" charset="utf-8" /> ...
- ajax实现用户名校验的传统和jquery的$.post方式
第一种:传统的ajax异步请求,后台代码以及效果在最下边 首先我们在eclipse中创建一个注册页面regist.jsp,创建一个form表单,注意,由于我们只是实现用户名校验的效果,下边红色部门是我 ...
- em单位使用小结
em是一个css的单位. em是一个相对的单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸.(引自CSS2.0手册) 一般在DOM元素中,当前 ...
- Python学习笔记整理总结【web基础】【web/HTML/CSS/JavaScript/DOM/jQuery】
一.HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以 ...
- 制作支持 BIOS+UEFI 的 U 盘 grub2+bootmgr 引导 + deepin_recovery + deepin_iso + win_pe
网盘下载:https://pan.baidu.com/s/1c2GXPo0 U盘为 FAT32,MBR分区表 1.下载:U盘grub2+bootmgr引导2017.12.6.2.7z 2.解压到 U盘 ...
- Python中的列表生成器,迭代器的理解
首先,思考一个问题,比如,我们想生成0-100的列表,我们怎么做? 当然,可以写成 list1=[1,2,3...,100] 可以看出,这种方法不适合生成长的列表,那么Python中就可以利用已有的列 ...
- memcache调整value大小限制
> *事件背景: 当Redis有问题时按预案就会切换到本机memcache,但是我们首页 key:value现 在是1.5M同时memcache item限制是1M,导致首页写入memcache ...
- stm32串口接收中断协议解析
借鉴了文章:<stm32串口中断接收方式详细比较> 文章地址:http://blog.csdn.net/kevinhg/article/details/40186169 串口的配置这里不做 ...
- Netty之二进制文件传输
传输会话简要 客户端发起一个文本请求给服务器端, 服务器端解析里面文本, 返回文件给客户端, 客户端解析文件 服务器端 因为示例文件比较小, 所以没有做分段传输, 而是直接一次性把整个文件byte[] ...