Docker跨主机通信具体方法

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

设有三台虚拟机

   v1: 10.108.8.200

   v2: 10.108.8.205

   v3: 10.108.8.202

更改虚拟机docker0网段

v1为172.17.1.1/24,v2为172.17.2.1/24,v3为172.17.3.1/24。

   #v1
   sudo ifconfig docker0 172.17.1.1 netmask 255.255.255.0
   sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
   sudo service docker restart

   # v2
   sudo ifconfig docker0 172.17.2.1 netmask 255.255.255.0
   sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
   sudo service docker restart

   # v3
   sudo ifconfig docker0 172.17.3.1 netmask 255.255.255.0
   sudo bash -c 'echo DOCKER_OPTS="-B=docker0" >> /etc/default/docker'
   sudo service docker restart

然后在v1上把v2的docker虚拟网段加入到路由表中,在v2上将v1的docker虚拟网段加入到自己的路由表中

   # v1 10.108.8.200
   sudo route add -net 172.17.2.0 netmask 255.255.255.0 gw 10.108.8.205
   sudo iptables -t nat -F POSTROUTING
   > sudo iptables -t nat -A POSTROUTING -s 172.17.1.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

   # v2 10.108.8.205   v3   10.108.8.202
   sudo route add -net 172.17.1.0  netmask 255.255.255.0  gw 10.108.8.200
   sudo iptables -t nat -F POSTROUTING
   sudo iptables -t nat -A POSTROUTING -s 172.17.2.0/24 ! -d 172.17.0.0/16 -j MASQUERADE

至此,两台虚拟机中的docker容器可以互相访问了。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/14789.html

(0)
晴川运维晴川运维
上一篇 2025年10月8日
下一篇 2025年10月8日

相关推荐

  • springboot 配置DRUID数据源具体流程

    Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBo…

    Linux系统 2025年10月19日
  • 集群和分布式具体区别

    集群和分布式,都是描述的一组计算机。集群的所有节点跑的是同样的任务,而分布式系统的节点跑的是分解后的任务,下面为大家详细讲解一下集群和分布式不同。 单机结构 我想大家最最最熟悉的就…

    Linux系统 2025年7月2日
  • Linux下查看系统架构具体方法

    计算机的体系结构从指令集的复杂度上可以分两类,一是复杂指令集CISC,主要是X86架构。另一类是精简指令集RISC,这个比较多,主要是ARM、MIPS、PowerPC等,本篇文章为…

    Linux系统 2025年6月8日
  • 详解MySQL 慢查询

    慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化,下面为大家详细讲解一下 MySQL 慢查询。 …

    Linux系统 2025年9月17日
  • Linux面试命令问答

    问:1 如何查看当前的Linux服务器的运行级别? 答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。 问:2 如何查看Linux…

    Linux系统 2025年6月13日
  • lnav:Linux 下一个基于控制台的高级日志文件查看器

    服务器日志是一个由服务器创建并经常更新、用于抓取特定服务和应用的所有活动信息的日志文件。当你的应用或者服务出现问题时这个文件就会非常有用。从日志文件中你可以获取所有关于该问题的信息…

    Linux系统 2025年6月8日
  • Linux 系统中修复 SambaCry 漏洞(CVE-2017-7494)

    Samba 很久以来一直是为 *nix 系统上的 Windows 客户端提供共享文件和打印服务的标准。家庭用户,中型企业和大型公司都在使用它,它作为最佳解决方案在多种操作系统共存的…

    Linux系统 2025年7月2日
  • 数据科学行业常用的Python库

    近几年,Python 在数据科学行业的发展十分迅猛,也正因为如此,对于希望提升应用程序功能的数据科学家和机器学习专家来说,Python通常是首选编程语言。并且Python拥有大量的…

    Linux系统 2025年10月10日
  • Linux下防御SYN Flood工具

    SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。 如果…

    Linux系统 2025年9月22日
  • Linux下设置开机自动运行

    有时可能会需要在重启时或者每次系统启动时运行某些命令或者脚本。我们要怎样做呢?本文中我们就对此进行讨论。 我们会用两种方法来描述如何在 CentOS/RHEL 以及 Ubuntu …

    Linux系统 2025年6月12日

发表回复

登录后才能评论