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日

相关推荐

  • 详解Android root原理

    0x00 关于root linux和类Unix系统的最初设计都是针对多用户的操作系统,对于用户权限的管理很非常严格的,而root用户(超级用户)就是整个系统的唯一管理员,拥有等同于…

    Linux系统 2025年10月4日
  • Linux 中自定义 Cinnamon 桌面具体方法

    Cinnamon由Clement Lefebvre,Linux Mint创始的一个桌面交互环境,试图提供一个布局类似于GNOME 2,含有一个底部面板和启动器器,GNOME2-li…

    Linux系统 2025年6月11日
  • Shell [[]]详解:检测某个条件是否成立

    [[ ]]是 Shell 内置关键字,它和 test 命令类似,也用来检测某个条件是否成立。 test 能做到的,[[ ]] 也能做到,而且 [[ ]] 做的更好;test 做不到…

    Linux系统 2025年9月16日
  • Linux下更改网卡名称具体方法

    Linux服务器安全对于保护用户数据、知识产权非常重要,同时还能减少你面对黑客的时间。在工作中,通常由系统管理员对Linux的安全负责,下面为大家详细讲解强化Linux服务器具体方…

    Linux系统 2025年9月16日
  • Linux中安装 supervisor 具体步骤

    Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,下面为大家分享一下在Linux…

    Linux系统 2025年6月9日
  • DNS在什么场景下选择TCP与UDP协议

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类。但很少有人知道DNS分别在什么情况下使用这两种协议。 TCP与…

    Linux系统 2025年6月8日
  • Linux下使用Linfo显示服务器运行状况

    Linfo 是一个自由开源的跨平台的服务器统计 UI 或库,它可以显示大量的系统信息。Linfo 是可扩展的,通过 composer,很容易使用 PHP5 库以程序化方式获取来自 …

    Linux系统 2025年6月8日
  • APFS为何如此之强

    Apple 文件系统 (APFS) 是 Mac 电脑的默认文件系统格式,具有强加密、空间共享、磁盘快照、快速目录大小统计等特性,以及改进的文件系统基础。虽然 APFS 最适合于新款…

    Linux系统 2025年10月10日
  • Linux中使用Cream提高 Vim 的用户友好性

    Cream 附加包通过把一个更加熟悉的“面孔”置于 Vim 文本编辑器之上,同时保留 Vim 的功能,使其更加容易使用。 当我把 Cream 介绍给他们以后,他们的失望就变成了满意…

    Linux系统 2025年6月8日
  • Shell until循环用法详解

    unti 循环和 while 循环恰好相反,当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环。 until 的使用场景很少,一般使用 while 即可。 Shell un…

    Linux系统 2025年10月9日

发表回复

登录后才能评论