• 售前

  • 售后

热门帖子
入门百科

Docker之自界说网络实现

[复制链接]
毛当归搜 显示全部楼层 发表于 2022-1-7 16:41:03 |阅读模式 打印 上一主题 下一主题
目次


  • 1、自定义网络实现容器互联
  • 2、网络连通

1、自定义网络实现容器互联
  1. 四类网络模式,使用docker network ls查看docker网络模式
复制代码
            Docker网络模式            配置            阐明                                    host模式            –net=host            容器和宿主机共享Network namespace。                            container模式            –net=container:NAME_or_ID            容器和别的一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。                            none模式            –net=none            容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。                            bridge模式            –net=bridge            桥接模式(默以为该模式)        –net=bridge 这个是默认值,连接到默认的网桥。
–net=host 告诉 Docker 不要将容器网络放到隔离的名字空间中,即不要容器化容器内的网络。此时容器使用本田主机的网络,它拥有完全的本田主机接口访问权限。容器历程可以跟主机别的 root 历程一样可以打开低范围的端口,可以访问当地网络服务比如 D-bus,还可以让容器做一些影响整个主机体系的事情,比如重启主机。因此使用这个选项的时间要非常鉴戒。假如进一步的使用 --privileged=true,容器会被答应直接配置主机的网络堆栈。
–net=container:NAME_or_ID 让 Docker 将新建容器的历程放到一个已存在容器的网络栈中,新容器历程有自己的文件体系、历程列表和资源限定,但会和已存在的容器共享 IP 地址和端口等网络资源,两者历程可以直接通过 lo 环回接口通讯。
–net=none 让 Docker 将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自己进行配置。
  1. 自定义网络
复制代码
  1. # --driver bridge 桥接模式
  2. # --subnet 192.168.0.0/16 子网络网段
  3. # --gateway 192.168.0.1 网关
  4. # mynet 网络名
  5. docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
复制代码

检察自界说的网络信息:
  1. docker network inspect mynet
复制代码
  1. 在自定义的网路中创建容器
复制代码
  1. docker run -d -P --name tomcat01-net-01 --net mynet tomcat
  2. docker run -d -P --name tomcat01-net-02 --net mynet tomcat
复制代码

再次检察自界说的网络信息:发现新创建的两个容器添加进网络中了。
  1. 使用容器名互相进行ping测试
复制代码
tomcat01-net-01 ping tomcat01-net-02:

tomcat01-net-02ping tomcat01-net-01:

如今不使用 --link 容器间也可以相互 ping 通了,容器间可以相互通讯。

2、网络连通
  1. 需求分析图
复制代码

创建tomcat01和tomcat02两个容器:
  1. docker run -d -P --name tomcat01 tomcat
  2. docker run -d -P --name tomcat02 tomcat
复制代码

很明显,直接ping通是不可能的,必要先把tomcat01容器和mynet网络连通。
  1. <strong>docker network connect</strong>
复制代码
docker network connect 下令是用于将 docker 容器连接到某个网络中,可以使用容器名或者容器ID。
用法:
  1. docker network connect [OPTIONS] NETWORK CONTAINER
复制代码
把tomcat01容器连接到mynet网络上:
  1. docker network connect mynet tomcat01
复制代码
检察mynet的网络信息:docker inspect mynet

tomcat01已经连接到mynet网络上,像tomcat01-net-tomcat01和tomcat01-net-tomcat02一样。
此时,tomcat01已经和mynet网络中的两个容器连接起来,由于这三个容器处于同一网络中,当然可以相互通讯:
  1. 一个容器两个网络:
复制代码
检察tomcat01的元数据:docker inspect tomcat01

tomcat01连接到自界说的mynet网络后,就有两个网络了。
到此这篇关于Docker之自定义网络实现的文章就先容到这了,更多相关Docker网络内容请搜刮草根技术分享以前的文章或继承欣赏下面的相关文章盼望各人以后多多支持草根技术分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作