如何让不同主机中docker容器可以相互访问

我们都知道同一台主机中的docker容器可以相互访问,那么不同主机中的docker容器间是否可以相互访问呢?答案是可以的,解决思路是在主机中把另外主机上docker容器的网段加入到路由表中。

现有主机A 192.168.124.51,主机B 192.168.124.55,具体步骤如下:

  1. 修改一台主机docker容器使用的网段(默认是172.17.x.x),如何修改请看上一篇
  2. 假设已经修改好docker网段,例如主机A中docker容器使用10.1.x.x网段,主机B中docker使用172.17.x.x网段

在A中添加路由表

sudo route add -net 172.17.0.0 netmask 255.255.0.0 gw 192.168.124.55

主机B中添加

sudo route add -net 10.1.0.0 netmask 255.255.0.0 gw 192.168.124.51

至此,主机A,B中的容器可以相互访问了

时间: 2024-08-10 15:05:49

如何让不同主机中docker容器可以相互访问的相关文章

如何实现跨主机之间docker容器通信问题

这里采用最原始的桥接模式来实现跨主机直接docker容器通信问题 一些常用命令 brctl show br0 brctl addbr br0 brctl addif br0 eth0 ifconfig br0 down 1.先安装brctl工具包 apt-get install bridge-utils 2.创建一个docker的桥接网络类型(ip填写和同主机网段的ip) docker network create --subnet=192.168.17.100/16 br0 这里我的宿主机ip

解决Windows10下无法对docker容器进行端口访问(端口映射的问题)

解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 问题详情 在Windows10系统服务器中安装了docker和docker-compose 并尝试在其中运行Nginx服务,映射也做好 问题:在主机的浏览器中,打开localhost:port无法访问对应的Web服务. 问题解析 原因:docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker. 也就是说,服务中使用

阿里云主机部署Docker容器引擎

一.部分  通过阿里云软件市场一键部署 配置过程如下链接: https://market.aliyun.com/products/56014007/cmjj017110.html?spm=5176.2020520132.101.5.4MIrmY最终get到云主机+Docker容器引擎 云主机登录:ssh -p 22 [email protected]公网IP  user:root pass:[email protected] 容器远程登录:ssh –p9090 [email protected]

windows宿主机和docker容器设置挂载共享文件夹

docker容器内的程序经常需要访问.调用宿主机目录中的数据,每次都要导入导出非常麻烦费力. 接下来,一步步实现将宿主机的指定文件夹挂载到docker容器中. 1. 打开Oracle VM VitualBox:  2. 点击[设置]->点击左侧的[共享文件夹]  3. 双击默认的[c/Users  \\?\c:\Users],进行编辑,这里设置D盘下的data为挂载共享目录,名称可修改,此处设为"data". 点击确定 4. 重启virtualbox虚拟机,中间有等待时间: 5.

两台主机间docker容器网络互通

服务器1: 网络172.30.0.0/16 服务器2: 网络172.31.0.0/16 服务器1和服务器2上的docker容器网络之间是无法互通的,如果需要互通,需要做以下配置: 服务器1上执行: iptables -I DOCKER-USER -i br-88bd505e153f -o eth0 -j ACCEPT iptables -I DOCKER-USER -i eth0 -o br-88bd505e153f -j ACCEPT br-88bd505e153f是服务器1上docker的网

Linux 系统中 Docker 容器安装及使用

Docker 简介 产生背景 项目的开发环境和部署环境不一致,部署环境配置难度大.集群技术的发展,集群的相同配置操作难度大. 基本理念 使用Go语言实现的云开源项目,"一次编译,处处运行",只需要一次配置环境,就可以在其他环境一键部署,软件即容器,虚拟化. 虚拟化技术 虚拟机:一种带环境安装的解决方案,模拟整套操作系统,笨重. 容器:将所有运行环境打包成互相隔离的容器,不进行硬件虚拟. 开发/运维(DevOps) 开发自运维.一次开发,处处运维. 官方资料 Docker Docker中

如何使用数据卷在宿主机和docker容器之间共享文件

共享宿主机的目录给容器 docker run -i -t -v ~/download:/home/hello python3-env /bin/bash -v  表示创建一个数据卷并挂载到容器里 ~/download:/home/hello 冒号前面是宿主机目录,后面是容器里的目录.表示把宿主机的download目录挂载到容器的/home/hello目录下.注意run之后是一个新的容器,ID都不一样的.  注意:python3-env是镜像的名称 从Dockerfile新建一个镜像 Docker

Linux中docker容器的安装

1.查看当前内核版本>=3.10 uname -r2.更新yum包 yum update3.卸载旧版本 yum remove docker docker-common docker-selinux docker-engine4.安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm25.设置yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker

java中不同类如何相互访问变量值(新手见解,可能很low)

最近在学基础java知识,这个是很常见的问题之一了,下面我要列出三种异类取值方法,当然不止这些,我选择了最简单的三种: 1.可以使用static静态变量,直接调用要访问类的属性和方法.因为 Java 中 static的特性: static 变量在类装载的时候进行初始化. 多个实例的 static变量会共享同一块内存区域. 1 public class A1 { 2 public static String str = "Hello World !"; 3 } 4 5 public cl