20170904多个docker容器中同时搭建多套ceph集群(一)---docker网络模式的了解
来源:互联网 发布:mac怎么隐藏桌面图标 编辑:程序博客网 时间:2024/06/05 15:01
多个docker容器中同时搭建多套ceph集群(一)---docker网络模式的了解
1、软件安装
使用brctl show指令需要安装 yum install bridge-utils
使用ifconfig、ip route 、ip route add 等指令 yum install net-tools -y
2、使用默认网桥docker0以bridge模式跑一个容器
备注:bridge模式可以与host模式共存
当创建一个 Docker 容器的时候,同时会创建了一对 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0 ;另一端在本地并被挂载到docker0 网桥,名称以 veth 开头(例如 vethAQI2QT )。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络.
容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。
[root@master ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
如果为 0,说明没有开启转发,则需要手动打开。
$sysctl -w net.ipv4.ip_forward=1
vim /root/tmp.sh
输入/bin/bash保存退出.start-ceph.sh是Dockerfile文件中指定的文件名称
docker run -itd --net=bridge --privileged=true -v /root/tmp.sh:/root/start-ceph.sh --name lwlceph ceph/centos6:latest
如果不指定脚本,也可以直接这样启动
docker run -itd --net=bridge --privileged=true /bin/bash --name lwlceph ceph/centos6:latest
其中ceph/centos6:latests是镜像名称,这种方式docker会自动使用默认的虚拟镜像docker0,它的IP地址可通过ifconfig进行查询,一般是172.17.0.1,通过bridge模式生成的容器的ip范围在172.17.0.2---172.17.0.16
这种方式不能在创建容器的时候使用--ip的指令指定ip地址,但是建立好容器之后可以进入容器后修改容器的i
docker ps -a docker attach lwlceph
ifconfig查询其中eth0的ip
ifconfig eth0 172.17.0.10/16 修改ip为172.17.0.10,指定掩码为255.255.0.0
route -n 查看路由表信息
route add default gw *.*.*.*添加默认路由
route del
3、自建一个网桥docker-br0,可以跑容器的时候指定ip
多台机器上docker容器互通需要添加对方机器中docker的网段,所以需要自己额外创建不同网段的网桥
多台机器上docker容器互通
环境:
服务器id
容器分配网段
启动容器的id
10.3.191.10
172.172.0.0/24
172.172.0.10
10.3.191.11
172.172.1.0/24
172.172.1.10
10.3.191.12
172.172.2.0/24
172.172.2.10
l 在第一台10.3.191.10
创建网桥
docker networkcreate --subnet=172.172.0.0/24 docker-br0
指定IP 运行容器
docker run -itd--net docker-br0 --ip 172.172.0.10 --name dockervr0 -v/root/tmp.sh:/root/start-ceph.sh ceph/centos6:latest
l 在第二台10.3.191.11
创建网桥
docker networkcreate --subnet=172.172.1.0/24 docker-br0
dockernetwork rm docker-br0 指令可以移除网桥
指定IP 运行容器
docker run -itd--net docker-br0 --ip 172.172.1.10 --name dockervr0 -v/root/tmp.sh:/root/start-ceph.sh ceph/centos6:latest
l 在第三台10.3.191.12
创建网桥
docker networkcreate --subnet=172.172.2.0/24 docker-br0
指定IP 运行容器
docker run -itd--net docker-br0 --ip 172.172.2.10 --name dockervr0 -v/root/tmp.sh:/root/start-ceph.sh ceph/centos6:latest
l 在第一台10.3.191.10
添加路由规则
ip route add 对方容器所在的ip网段/子网掩码 via对方虚拟机ip dev 通过哪个网卡通信
如: ip route add 172.172.1.0/24 via 10.3.191.11dev enp1s0f0
ip route add 172.172.2.0/24 via 10.3.191.12dev enp1s0f0
添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用
ip route del172.172.1.0/24 via 10.3.191.11 dev enp1s0f0
ip route del172.172.2.0/24 via 10.3.191.12 dev enp1s0f0
移除路由规则
l 在第二台10.3.191.11
添加路由规则
ip route add 对方容器所在的ip网段/子网掩码 via对方虚拟机ip dev 通过哪个网卡通信
如: ip route add 172.172.0.0/24 via 10.3.191.10 dev enp1s0f0
ip route add 172.172.2.0/24 via 10.3.191.12 dev enp1s0f0
添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用
ip route del172.172.0.0/24 via 10.3.191.10 dev enp1s0f0
ip route del172.172.2.0/24 via 10.3.191.12 dev enp1s0f0
移除路由规则
l 在第二台10.3.191.11
添加路由规则
ip route add 对方容器所在的ip网段/子网掩码 via对方虚拟机ip dev 通过哪个网卡通信
如: ip route add 172.172.0.0/24 via 10.3.191.10devenp1s0f0
ip route add 172.172.1.0/24 via 10.3.191.11dev enp1s0f0
添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用
ip route del172.172.0.0/24 via 10.3.191.10 dev enp1s0f0
ip route del172.172.1.0/24 via 10.3.191.11 dev enp1s0f0
移除路由规则
PS:通过ip route可以查看路由表信息,全部步骤准备完成后,此时进入相应的容器则可以ping通其他容器的ip地址了。
以自建的docker-br0为网桥,指定IP,创建容器在第一台机器10.3.191.10
docker run -itd--net docker-br0 --ip 172.172.0.10 --name dockervr0 -v /root/tmp.sh:/root/start-ceph.sh ceph/centos6:latest
在第二台机器10.3.191.11
docker run -itd--net docker-br0 --ip 172.172.1.10 --name dockervr0 -v /root/tmp.sh:/root/start-ceph.sh ceph/centos6:latest
在第三台机器10.3.191.10
docker run -itd--net docker-br0 --ip 172.172.2.10 --name dockervr0 -v /root/tmp.sh:/root/start-ceph.sh ceph/centos6:latest
在这三台机器中容器中,ping其他机器容器的IP就可以ping通了,实现跨机器的容器网络共通.
- 20170904多个docker容器中同时搭建多套ceph集群(一)---docker网络模式的了解
- docker容器中搭建kafka集群环境
- 基于docker的ceph集群
- 多主机网络下 Docker Swarm 模式的容器管理
- 多主机网络下 Docker Swarm 模式的容器管理
- 多主机网络下 Docker Swarm 模式的容器管理
- 多主机网络下 Docker Swarm 模式的容器管理
- 【Docker】容器技术黑马Docker(一)——了解容器技术,了解Docker
- docker中容器的四种网络模式详解
- docker创建ceph集群
- Docker同时启动多个服务
- Docker同时启动多个服务
- Docker同时启动多个服务
- 【docker】docker容器的网络基础
- Docker 学习之 容器中运行多个服务
- 使用docker 1.12 搭建多主机docker swarm集群
- 理解Docker跨多主机容器网络
- 理解Docker跨多主机容器网络
- 微服务设计笔记(一)
- C++&
- 【Python】Matplotlib画图(四)——折线图
- 【Lua】迭代器初学
- MySQL语句之or/and
- 20170904多个docker容器中同时搭建多套ceph集群(一)---docker网络模式的了解
- 【JS开发】电商相关自用小插件
- Proud Merchants HDU
- Python 函数
- myBatis学习——SqlSession对象获取的封装工具类
- Android自定义开机和关机动画
- 第5章 索引与算法,第6章 锁
- Git 分布式版本控制
- JavaScript对JSON的解析