docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > 不同网段docker容器网络互通

如何实现不同网段docker容器网络互通

作者:IT_Bigboy_sz

文章讲解了通过Docker bridge网络实现容器间通信的方法,包括关闭防火墙、拉取busybox镜像、创建容器并测试IP连通性,使用--link参数连接容器,以及跨网段通信的配置技巧

首先我们需要了解的是:每个docker容器都是隔离的,所以它们之间是相互不同的!

那么我们开始操作起来,让他们之间可以相互ping通网络。。。

一、拉取镜像创建容器

1.在这之前首先关闭防火墙

如果显示 runinng 则执行:

sudo systemctl stop firewalld

2.在https://hub.docker.com里拉取镜像 busybox

(注:busybox相当于小型的centos虚拟机,且比较小)

执行docker image ls 查看镜像;

3.创建两个容器

docker run -it -d --name test1 busybox
docker run -it -d --name test2 busybox


二、查看网络连接状态

docker network ls

这里有个bridge,默认情况下创建的所有容器都会在bridge网段;

查看bridge网段详情通常是

docker network inspect bridge

这里我们下在一个小插件:

sudo yum install -y bridge-utils

这样执行

sudo brctl show

可以清晰简单的看到连接到各网段的容器

进入test1容器

docker exec -it test1 sh

在上图可以看到test2 的ip是172.17.0.3,那么我们ping一下test2试试看是否网络可通

是可以的 因为其在同一各网段;那么直接ping容器名字呢?

那么神操作来啦 简单的命令试试结果吧

docker run -d -it --link test2 --name test3 busybox

进入test3容器

OK!

那么如果不是在bridge网段的同期是否能ping通呢

首先建一个网段取名为:my-bridge

docker network create --driver bridge my-bridge

其中–driver是表示基于后面参数bridge建立的网段my-bridge

来吧,创建一个在my-bridge网段的容器

docker run -it -d --net=my-bridge --name test4 busybox

很显然test4 和test1.2.4都不在一个网段

ping下试试吧

不行的,那么见证奇迹的时刻到了,先看看网络连接

我们把test也加入bridge网段(test4会有两个ip)

docker network connect bridge test4

再看下网段情况

那么我们进入test4网段随意ping一下bridge网段的容器

OK,很奈斯~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文