不同PC间的容器间的通信设计

不同PC间的容器间的通信设计
1、背景及概述
1.1、背景
最近在做的一个项目,需要进行容器的网络设计,容器的网络可以分为三种:①容器与宿主机的通信。②容器与外部PC的通信。③容器之间的通信。其中容器间的通信又涉及到同一台PC之间的通信和不同PC之间的通信。本文档主要讲不同PC容器间的通信。目标有两点:①容器ip得到固定。②容器之间能互相通信。
1.2、概述
本手册以如下网络关系作讲解,为了使得验证具有普遍性,特设计两个容器ip为自定义非同网段ip,HOST主机ip与容器非同网段。

图1 网络关系图
2、环境准备
目标是为了在两台PC上部署两个网段不同的容器app1和app2。
2.1、app1环境部署
1)在宿主机ip为192.168.0.50的环境上建立网络mynetwork,网段分别配置为192.17.0.0/24
$ docker network create -d bridge --subnet=192.17.0.0/24 mynetwork
2)固定容器IP为192.17.0.2,宿主机端口为8022,容器端口为22。
$ docker run -it -p 8022:22 --name app1 --net mynetwork --ip 192.17.0.2 --privileged=true 970b9230259a bash

	$ docker network ls

3)开启ssh服务
	$ apt-get install openssh-server
	$ apt-get install openssh-client
   $ /etc/init.d/ssh start
   $ ps -e | grep ssh

2.2、app2环境部署
1)在宿主机ip为192.168.0.150的环境上建立网络mynetwork,网段分别配置为182.17.0.0/24
$ docker network create -d bridge --subnet=182.17.0.0/24 mynetwork
2)固定容器IP为182.17.0.2,宿主机端口为8022,容器端口为22。
$ docker run -it -p 8022:22 --name app1 --net mynetwork --ip 182.17.0.2 --privileged=true 970b9230259a bash

$ docker network ls

3)开启ssh服务
详细操作步骤参考文档:

http://3ms.huawei.com/hi/group/3289503/wiki_7152257.html?for_statistic_from=creation_group_wiki
$ apt-get install openssh-server
$ apt-get install openssh-client
$ /etc/init.d/ssh start
$ ps -e | grep ssh

3、网络通信校验
本次校验通过两种方式进行校验,一种是通过两个容器之间能够通过ssh互相连接访问,另一种是通过tcpping工具相互Ping对方。
3.1、ssh校验
本校验已默认前面的环境已准备,ssh服务端和客服端已安装启动。
在app1侧:
$ ssh root@192.168.0.150 -p 8022

在app2侧:
$ ssh root@192.168.0.50 -p 8022

结果显示不同PC之间的两个容器可以互相用ssh连接访问。

3.2、tcpping验证
1)tcpping安装
$ sudo apt-get install tcptraceroute
$ sudo apt-get install bc
$ cp tcpping /usr/bin #tcpping工具附件提供,或者在网站下载http://www.vdberg.org/~richard/tcpping
$ chmod 755 tcpping
2)tcpping验证
在app1侧:
$ tcpping 192.168.0.150 8022

在app2侧:
$ tcpping 192.168.0.50 8022
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker容器可以通过多种方式进行通信。根据媒介,可以使用volume共享通信和网络通信等方式。根据通信范围,可以分为同主机通信和跨主机通信。其中,网络通信方法是本文的主要讨论内容。 Docker的网络驱动模型提供了不同的网络模式,其中最常用的是bridge模式。在bridge模式下,容器会创建独立的网络命名空,具有独立的网卡和网络栈。这是Docker网络的默认设置。当我们通过docker run命令启动容器时,如果没有指定--net参数,就会默认采用bridge模式。系统会自动创建一个网桥docker0,新创建的容器会通过DHCP获取一个与docker0同网段的IP地址,并连接到docker0网桥,从而实现容器与宿主机的网络互通。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker容器通信方法](https://blog.csdn.net/THMAIL/article/details/104081435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Docker篇之docker容器通信](https://blog.csdn.net/xu710263124/article/details/115587587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Docker容器网络通信](https://blog.csdn.net/woshaguayi/article/details/119384333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值