Docker之网络

1、容器与宿主机之间

在宿主机上安装好docker 服务后,会默认安装一个虚拟网卡docker0
在这里插入图片描述
这里docker0的ip范围是在172.17.0.1到172.17.0.255之间(172.17.0.1和172.17.0.255不可取)
启动一个centos的容器查看网络信息

docker run -it -d centos /bin/bash

在这里插入图片描述
进入容器内查看网络信息
在这里插入图片描述
容器的ip与宿主机docker0网卡ip是在同一网段上(ip与子网掩码按位与运算),这是因为启动一个容器是如果不指定网络就会使用默认的docker0

通过docker network ls查看docker所有的网络
在这里插入图片描述
启动容器是默认会使用这个名为bridge的网络,docker network inspect bridge查看具体信息
在这里插入图片描述
宿主机和容器是能相互ping通的

2、容器与容器之间

那如果再启动一个容器,容器与容器之间能ping通吗?
在这里插入图片描述
centos02容器的网络信息
在这里插入图片描述
centos01的ip是172.17.0.2,centos02的ip是172.17.0.3 那么他们能ping通吗?
在这里插入图片描述
答案是可以的,因为两个容器默认使用的都是bridge网络(docker0网卡),分配的ip都是在同一网段。但是docker容器之间不是隔离的吗 如何实现隔离。就需要用到自定义网络

3、自定义网络

前面说到启动一个容器会默认使用bridge网络,如何自定义一个网络并使用?
docker network 命令
在这里插入图片描述
简单自定义一个网络 指定子网和网关
在这里插入图片描述
查看centos网络详细信息
在这里插入图片描述
在宿主机自定义一个网络,其实就是增加一个网卡信息
在这里插入图片描述

两个容器使用同一个网络

接下来启动两个centos容器使用同一个自定义网络
在这里插入图片描述
通过参数--network 网络名指定容器使用的网络
查看cnetos01和centos02的网络信息
在这里插入图片描述
有人可能会有疑问:自定义得网络子网是 192.168.24.0/16 而两个容器的ip是192.168.0.1和2,这好像也不在同一个网段上,关于两个ip是否在同一网段上这点请自行解决
在这里插入图片描述

两个容器使用两个个网络

自定义两个网络centos01和centos02
在这里插入图片描述
启动两个centos容器分别使用不通的容器
在这里插入图片描述
查看centos01的网络信息
在这里插入图片描述

查看centos02的网络信息
在这里插入图片描述
这两个ip使用的不同的网络,不是在同一个网段上,所以两个容器是不能ping通的。
那么如何让两个隔离的容器能相互ping通?
使用docker network connect 命令将容器连接到网络
在这里插入图片描述
docker network connect centos01 centos02:可能有点晕,解释:将容器centos02连接到网络centos01中,这样容器centos02既连接到了网络centos01,也连接到了centos02中。
docker network connect 网络 容器
查看网络centos01信息:网络centos01中新增了centos02容器
在这里插入图片描述
进入centos02中查看网络信息:新增一个网卡信息
在这里插入图片描述
结果:容器centos02有两个网卡信息,因为它使用了两个自定义的网络
图解:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值