Docker主机之间容器通信
发布时间:2023-06-06 14:19:52 所属栏目:教程 来源:
导读:桥接模式,多个宿主机位于同一个局域网,将每一个宿主机上的容器网络桥接到宿主机网络中,容器和宿主机同在一个局域网中互相通信。每台宿主机上的容器都直接从局域网中获取IP地址,容易导致IP地址冲突。
端口映射
端口映射
桥接模式,多个宿主机位于同一个局域网,将每一个宿主机上的容器网络桥接到宿主机网络中,容器和宿主机同在一个局域网中互相通信。每台宿主机上的容器都直接从局域网中获取IP地址,容易导致IP地址冲突。 端口映射模式,是将容器的服务所运行的端口映射到宿主机的某一个端口,然后其他的容器通过宿主机的对应端口进行访问。只要宿主机间能互相通信,容器之间就能通过宿主机的指定端口进行通信。但是这种方式需要对每一个容器都映射端口,而且宿主机的端口也有限。 Overlay 网络 Overlay网络依赖额外的服务和配置,配置较为复杂,我们在后续容器云平台一节会再次提到它的应用。 Macvlan 网络 macvlan 是 Linux 的内核模块,是一种网卡虚拟化技术,功能是允许在同一个物理网卡上虚拟出多个网卡,通过不同的MAC地址在数据链路层进行网络数据的转发,一块网卡上配置多个 MAC 地址,每个interface 可以配置自己的 IP。 Docker 的 macvlan 网络使用了 macvlan 驱动。 在物理网络拓扑结构上看,每张虚拟网卡都是一个单独的网口。 我们需要两台装好 Docker 服务的 Linux 虚拟机,并且虚拟机的网络要互通。 创建 macvlan 网络,在两个节点上都进行此操作: docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth1 -o macvlan_mode=bridge macvlan_net macvlan 是 kernel 的模块名; 192.168.2.0/24是宿主机所在网络的网段; 192.168.2.1是网关; eth1 是 Docker 宿主机(两台虚拟机)接入192.168.1.0/24 的物理网口。 创建容器并指定 IP: 容器b1: docker run -it -d --net macvlan_net --ip=192.168.1.101 --name b1 busyBox 容器b2: docker run -it -d --net macvlan_net --ip=192.168.1.102 --name b2 busyBox 测试容器通信 容器b1: docker exec -it b1 ping 192.168.1.102 容器b2: docker exec -it b2 ping 192.168.1.101 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |