首页 > 其他分享 >docker跨主机容器访问docker+weave

docker跨主机容器访问docker+weave

时间:2023-04-25 10:45:26浏览次数:51  
标签:bin 容器 -- 主机 docker localhost weave

这玩意是真的折磨,不难,但是网上的教程太杂了,坑太多了。

需求现在有两台服务器,里面部署了两台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

相关文章

  • 容器技术Docker知识精讲【形成知识体系篇】
    环境要求Linux操作系统(Centos),建议在虚拟机VMware或VirtualBox下安装CentosDocker容器MobaXterm客户端工具学习建议Docker的学习分为四个阶段:了解---->>入门--->>熟悉--->>拓展了解阶段:请参考官方指导文档入门学习基础知识。官方文档地址:https://docs.docker.com/入......
  • mac+docker+jenkins,运行python自动化
    一、实现思路在mac本地安装DockerDesktop创建jenkins容器根据自动化项目依赖包构建python镜像(构建自动化python环境)运行新的python容器,执行jenkins从仓库中拉下来的自动化项目执行完成之后删除容器二、环境准备1、一台mac2、在mac上安装DockerDesktop,打开......
  • docker如何清除所有运行过的容器
    要清除所有运行过的容器,可以使用以下命令:dockercontainerstop$(dockercontainerls-aq)dockercontainerrm$(dockercontainerls-aq)这两个命令的含义是:第一个命令dockercontainerstop$(dockercontainerls-aq),用于停止所有正在运行的容器。它使用了子命令do......
  • centos 7 下docker 部署vsftpd(docker-compose)
    启动命令:dockerrun-d-p21:21-p20:20-p21100-21110:21100-21110-v/opt/vsftpd/file:/home/vsftpd-eFTP_USER=admin-eFTP_PASS=1234\-ePASV_MIN_PORT=21100-ePASV_MAX_PORT=21110-ePASV_ADDRESS=0.0.0.0-ePASV_ENABLE=YES--nameftp\--restar......
  • docker compose 常用网络
    1.共享宿主机网络host#docker-compose.yml中设置network_mode:host#此时端口配置ports失效2.桥接网络bridge(默认)#自定义桥接网络dockernetworkcreatewebnet_db#数据库服务使用上面定义好的桥接网络#docker-compose.ymlversion:'3.1'services:db:......
  • docker-compose一键部署java开源项目
    这一年干的很多事都是为了降低我的开源项目消息推送平台austin使用门槛。如果想学Java项目的,强烈推荐我的开源项目消息推送平台Austin(8Kstars),可以用作毕业设计,可以用作校招,可以看看生产环境是怎么推送消息的。开源项目消息推送平台austin仓库地址:消息推送平台......
  • 在mac上使用docker部署Mongo数据库
    拉取镜像打开网址https://hub.docker.com/,搜索mongo,https://hub.docker.com/_/mongo执行命令dockerpullmongo启动容器执行命令dockerimage,查看到mongo的tag是5.0.16启动命令dockerrun-dit--namemongo5-p27017:27017-v/Users/huidongma/data/mongodb:......
  • docker
    images语法:dockerimages[OPTIONS][REPOSITORY[:TAG]]OPTIONS:参数REPOSITORY:镜像名称TAG:版本号参数选项作用–all,-a显示所有镜像(默认情况下中间镜像不会显示)–digests显示镜像摘要信息–filter,-f根据给定条件筛选镜像befor=  dangling= label=   reference=......
  • docker启动nginx
    1.下载对应镜像dockerpullnginx:1.19.102.运行容器dockerrun-p80:80--namenginx01nginx:1.19.10--restart=always-v容器(/etc/nginx/nginx.conf)1).实现反向代理 负载均衡拷贝文件:docker  cp 容器ID:/etc/nginx/nginx.conf  /root/nginxconf ......
  • Docker容器日志中文乱码问题
    背景:在使用docker部署springboot项目的时候,查看项目日志的过程中,发现中文打印出来的都是乱码:??????楼主是通过dockerfile创建的镜像,解决方案:DcokerFile中增加环境变量ENVTZ'Asia/Shanghai'ENVLANGen_US.UTF-8ENVLANGUAGEen_US:enENVLC_ALLen_US.UTF-8其......