Docker跨主机访问

一. 为什么要跨主机访问?

​ 在工作中docker容器会部署在不同的服务器中,那么就涉及到不同的机器间容器的相互通信。我们都知道docker-compose用于容器编排,但是只能解决单台服务器上容器间的通信问题。在本课程中我们将实现不同的服务器间容器的通信。

​ 我们采用的技术是weave,属于第三方网络项目,基于UDP的数据传输,其工作原理是创建一个连接多个主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到上面,互相通信。

二. 安装weaver

2.1 主机的规划
机器一机器二
192.168.223.128192.168.223.141

注意:两台服务的防火墙必须都要开启。

2.2 weave的安装

A. 下载weave脚本

https://github.com/weaveworks/weave 地址上下载 weave文件,或者直接将其内容拷贝到 /usr/local/bin 目录下,然后执行如下命令:

chmod a+x /usr/local/bin/weave

在这里插入图片描述

B. 分别执行如下两个命令:

weave version
weave launch

执行完如上的命令后会下载三个镜像,并且会自动启动一个容器,如下图所示:

在这里插入图片描述

在这里插入图片描述

C. 在另外一台机器上执行同样的命令。

2.3 通信配置

A. 将各主机间的weave实现互联

weave connect 192.168.223.141    #在192.168.223.128机器上执行
weave connect 192.168.223.128    #在192.168.223.141机器上执行

B. 启动一个centos容器

docker run -it centos /bin/bash

在这里插入图片描述

C.使用weave规划网络

weave attach 172.10.3.23/24 e2e4909711b7

在这里插入图片描述

在这里插入图片描述

D. 分别进入到两个容器中互 ping

在这里插入图片描述

在这里插入图片描述

附录:

主机间无密码访问

A. 执行 ssh-kengen -t rsa

在这里插入图片描述

执行完如上命令后会在 /root/.ssh 目录下生成 id_rsaid_rsa.pub 这两个文件。

B. 将 id_rsa.pub 文件通过如下命令拷贝到另外一台机器的 /root/.ssh 目录下(如果没有改目录,先创建),重命名为 authorized_keys

scp ./id_rsa.pub root@192.168.223.141:/root/.ssh/authorized_keys

在这里插入图片描述

C. 测试,拷贝文件到 192.168.223.141 机器中,如下图所示

scp a.txt root@192.168.223.141:/   #将当前目录下的a.txt文件拷贝到192.168.223.141下的/目录下

在这里插入图片描述

D. 如果想从对方的机器中无密码访问本机,执行相同的操作。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值