docker网络配置

网络命名空间

ip netns help

ip netns add test

ip netns list

ip netns del test

在/var/run/netns/

docker network ls

[root@foundation11 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
11ed1bf36d38        bridge              bridge              local
9f4f6dbc18ca        host                host                local
8c7205049a29        none                null                local

docker run -it --name vm1 --net host rhel7

docker run -it --name vm2 --net bridge rhel7

docker run -it --name vm3 --net none rhel7  禁用网络适合加密机密容器

下面使用桥接bridge

自己从网上下好ubuntu镜像tar

docker network create --driver bridge my_net1

docker network inspect my_net1

docker network create --driver bridge  --subnet 172.20.0.0/24 --gateway 172.20.0.1 my_net2

docker设计理念是隔离网络

docker run -it --name vm1 --net my_net1 ubuntu

docker run -it --name vm2 --net my_net2 --ip 172.20.0.10  ubuntu

这个后面的--ip是用户自定义 需要在自定义subnet后的子网才能使用

docker network connect my_net2 vm1

这样的话  vm2的172.20.0.10  可以通vm1 172.20.0.2,即vm1 vm2 通过172.20.0.10 2互通

vm1

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
       valid_lft forever preferred_lft forever
26: eth1@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.20.0.2/24 brd 172.20.0.255 scope global eth1
       valid_lft forever preferred_lft forever

vm2

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
28: eth0@if29: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:14:00:0a brd ff:ff:ff:ff:ff:ff
    inet 172.20.0.10/24 brd 172.20.0.255 scope global eth0
       valid_lft forever preferred_lft forever

跨主机通信

 

这里用2台虚拟机通信

都要两块网卡 eth0 1

yum install bash-* -y

进入混杂模式 promisc

ip link set eth0 promisc on

ip link set up eth1

ip link set eth1 promisc on

docker load -i ubuntu.tar

 

server1  172.25.11.1

docker network create -d macvlan --subnet 172.25.1.0/24 --gateway 172.25.1.1 -o parent=eth0 mac_net1

docker run -it --name vm1 --net mac_net1 --ip 172.25.1.10 ubuntu

docker network create -d macvlan --subnet 172.25.2.0/24 --gateway 172.25.2.1 -o parent=eth1 mac_net2

docker run -it --name vm2 --net mac_net2 --ip 172.25.2.10 ubuntu

docker network create -d macvlan --subnet 172.25.3.0/24 --gateway 172.25.3.1 -o parent=eth1.1 mac_net3

docker run -it --name vm3 --net mac_net3 --ip 172.25.3.10 ubuntu

server2 172.25.11.2

docker network create -d macvlan --subnet 172.25.1.0/24 --gateway 172.25.1.1 -o parent=eth0 mac_net1

docker run -it --name vm1 --net mac_net1 --ip 172.25.1.11 ubuntu

docker network create -d macvlan --subnet 172.25.2.0/24 --gateway 172.25.2.1 -o parent=eth1 mac_net2

docker run -it --name vm2 --net mac_net2 --ip 172.25.2.11 ubuntu

docker network create -d macvlan --subnet 172.25.3.0/24 --gateway 172.25.3.1 -o parent=eth1.1 mac_net3

docker run -it --name vm3 --net mac_net3 --ip 172.25.3.11 ubuntu

docker exec -it vm3 bash

root@c0adcf235354:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
9: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
    link/ether 02:42:ac:19:03:0b brd ff:ff:ff:ff:ff:ff
    inet 172.25.3.11/24 brd 172.25.3.255 scope global eth0
       valid_lft forever preferred_lft forever
root@c0adcf235354:/# ping 172.25.3.11
PING 172.25.3.11 (172.25.3.11) 56(84) bytes of data.
64 bytes from 172.25.3.11: icmp_seq=1 ttl=64 time=0.031 ms

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker提供了多种网络配置选项,以便在容器之间进行通信和连接到外部网络。以下是一些常见的Docker网络配置: 1. 默认桥接网络(Bridge Network):这是Docker的默认网络配置,它允许容器通过桥接方式连接到宿主机的网络。每个容器都会分配一个IP地址,并且可以通过容器名称或IP地址进行通信。 2. 主机网络(Host Network):使用主机网络配置,容器将直接使用宿主机的网络栈,与宿主机共享IP地址。这意味着容器的网络与宿主机完全一致,包括使用相同的网络接口和端口。 3. 用户自定义桥接网络(User-defined Bridge Network):在默认桥接网络之上,用户可以创建自己的桥接网络。这样可以将一组容器连接到同一个网络中,使它们能够相互通信。用户自定义桥接网络还支持容器名称解析和动态分配IP地址。 4. Overlay网络(Overlay Network):Overlay网络允许在多个Docker主机之间创建一个虚拟的、跨主机的网络。这对于构建容器集群非常有用,因为容器可以在不同的主机上运行,并且可以通过Overlay网络进行通信。 5. Macvlan网络(Macvlan Network):Macvlan网络允许将容器直接连接到物理网络,每个容器都可以获得与宿主机相同的MAC地址。这使得容器可以像物理设备一样直接与网络进行通信。 以上是一些常见的Docker网络配置选项,你可以根据实际需求选择适合的网络配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值