文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker之自定义网络实现

2024-04-02 19:55

关注

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 将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自己进行配置。

自定义网络


# --driver bridge 桥接模式
# --subnet 192.168.0.0/16 子网络网段
# --gateway 192.168.0.1 网关
# mynet 网络名
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

在这里插入图片描述

查看自定义的网络信息:


docker network inspect mynet

在这里插入图片描述

在自定义的网路中创建容器


docker run -d -P --name tomcat01-net-01 --net mynet tomcat
docker run -d -P --name tomcat01-net-02 --net mynet tomcat

在这里插入图片描述

再次查看自定义的网络信息:发现新创建的两个容器添加进网络中了。

在这里插入图片描述

使用容器名互相进行ping测试

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

在这里插入图片描述

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

在这里插入图片描述

现在不使用 --link 容器间也可以互相 ping 通了,容器间可以互相通信。

2、网络连通

需求分析图

在这里插入图片描述

创建tomcat01和tomcat02两个容器:


docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat

在这里插入图片描述

很明显,直接ping通是不可能的,需要先把tomcat01容器和mynet网络连通。

docker network connect

docker network connect 命令是用于将 docker 容器连接到某个网络中,可以使用容器名或者容器ID。

用法:


docker network connect [OPTIONS] NETWORK CONTAINER

把tomcat01容器连接到mynet网络上:


docker network connect mynet tomcat01

查看mynet的网络信息:docker inspect mynet

在这里插入图片描述

tomcat01已经连接到mynet网络上,像tomcat01-net-tomcat01和tomcat01-net-tomcat02一样。

此时,tomcat01已经和mynet网络中的两个容器连接起来,因为这三个容器处于同一网络中,当然可以互相通信:

在这里插入图片描述

一个容器两个网络:

查看tomcat01的元数据:docker inspect tomcat01

在这里插入图片描述

tomcat01连接到自定义的mynet网络后,就有两个网络了。

到此这篇关于Docker之自定义网络实现的文章就介绍到这了,更多相关Docker网络内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯