这玩意是真的折磨,不难,但是网上的教程太杂了,坑太多了。
需求现在有两台服务器,里面部署了两台docker,此时我想要用Adocker里面的容器去访问Bdocker里面的容器。
1. A主机 192.168.159.140
#安装weave
#先下载
wget -O /usr/local/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
#安装好了会在本地的/usr/local/bin下面多出来一个weave文件一定要看看下载成不成功
#安装成功之后就是常规操作
#给权限
chmod a+x /usr/local/bin/weave
#初始化weave
weave launch
#初始化阶段会自动安装docker镜像和容器 出现这三个就行了
#这个时候去B主机也操作一下 也是安装这一套流程
#接下来就是容器创建
weave env
eval $(weave env)
#上面两步操作完成进入容器创建
docker run --name shardMasterl11 -v /docker_container_data/mongodb/cluster/shard/shard1/data1:/data/db -d mongo:5.0.5 --replSet shard1 --shardsvr --port 27017
#然后进入容器如果之前安装了ifconfig和ping指令接下来的可以跳过
#进入容器
docker exec -it shardMasterl11 /bin/bash
#更新apt
apt update
#下载ifconfig
apt install net-tools
#下载ping
apt install iputils-ping
#查看当前容器网络
#ping测试
#此时查看能否将B主机中mongo当作从机也就是查看上面的操作是否真实完全成功!
docker exec -it shardMasterl11 mongo
#这个ip地址记得改啊,别直接复制
rs.initiate({_id:"shard1",members:[{_id:0,host:"10.40.0.0:27017"},{_id:1,host:"10.32.0.1:27017"}]})
#效果展示
2. B主机 192.168.159.150
#安装weave
wget -O /usr/local/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
#给权限
chmod a+x /usr/local/bin/weave
#不同的来了 !!!!!这个地方不一样!!
#初始化weave B主机目标A主机 一定要做绑定
weave launch 192.168.159.140
#链接失败有几种情况,一种是时间问题,这种需要你更换时区,两台服务器要同步
# 若出现以下错误
[root@localhost ~]# weave status connections
-> 192.168.159.140:6783 failed host clock skew of -6124s exceeds 900s limit, retry: 2019-12-09 08:26:45.12313254 +0000 UTC m=+451.600743522
# 解决办法:重新设置时间和时区
[root@localhost ~]# tzselect # 选择时区
[root@localhost ~]# date -s "20191209 16:31:01" # 设置时间
#还有一种是防火墙问题,防火墙关闭就行
# 若出现以下错误
[root@localhost ~]# weave launch
WARNING: existing iptables rule
'-A FORWARD -j REJECT --reject-with icmp-host-prohibited'
will block name resolution via weaveDNS - please reconfigure your firewall.
# 解决办法:关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service # 停止firewall
[root@localhost ~]# systemctl disable firewalld.service # 禁止firewall开机启动
#安装完成之后可以查看链接状态
weave status connections、
#接下来就是容器创建
weave env
eval $(weave env)
#上面两步操作完成进入容器创建
docker run --name shardMasterl12 -v /docker_container_data/mongodb/cluster/shard/shard1/data1:/data/db -d mongo:5.0.5 --replSet shard1 --shardsvr --port 27017
#进入容器看网络
总结
难度不难,但是网上的资料太坑了,这个东西我昨天弄了一天,光是weave下载都很难,很多都过期了,一步一个坑啊,我就应该昨天上午就听朋友的劝解尝试地址映射的,结果自己上头弄这个太坑了。
标签:bin,容器,--,主机,docker,localhost,weave From: https://www.cnblogs.com/qingmu1999/p/17351920.html