小知识:Docker之自定义网络实现

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

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
2
3
4
5
# –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之自定义网络实现-猿站网-插图

查看自定义的网络信息:

?
1
docker network inspect mynet

%小知识:Docker之自定义网络实现-1猿站网-插图

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

?
1
2
docker run -d -p –name tomcat01-net-01 –net mynet tomcat
docker run -d -p –name tomcat01-net-02 –net mynet tomcat

%小知识:Docker之自定义网络实现-2猿站网-插图

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

%小知识:Docker之自定义网络实现-3猿站网-插图

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

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

%小知识:Docker之自定义网络实现-4猿站网-插图

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

%小知识:Docker之自定义网络实现-5猿站网-插图

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

2、网络连通

需求分析图

%小知识:Docker之自定义网络实现-6猿站网-插图

创建tomcat01和tomcat02两个容器:

?
1
2
docker run -d -p –name tomcat01 tomcat
docker run -d -p –name tomcat02 tomcat

%小知识:Docker之自定义网络实现-7猿站网-插图

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

docker network connect

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

用法:

?
1
docker network connect [options] network container

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

?
1
docker network connect mynet tomcat01

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

%小知识:Docker之自定义网络实现-8猿站网-插图

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

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

%小知识:Docker之自定义网络实现-9猿站网-插图

一个容器两个网络:

查看tomcat01的元数据:docker inspect tomcat01

%小知识:Docker之自定义网络实现-10猿站网-插图

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

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

原文链接:https://blog.csdn.net/wpc2018/article/details/122192990

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:docker中容器数据卷volume介绍

2023-3-12 11:40:13

建站知识

小知识:K8S中五种控制器的介绍以及使用

2023-3-12 11:55:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索