Linux企业实战-----docker网络(原生网络、自定义网络、容器间的通信、跨主机通信)

本文详细介绍了Docker的网络功能,包括原生的bridge、host和none三种网络模式,重点讲解了如何创建和使用自定义网络,如bridge和Macvlan。还探讨了容器间的通信,如使用名称、container模式、link模式以及如何实现跨主机的容器网络,特别是macvlan网络方案的实现,以实现容器间的通信和与外部网络的交互。
摘要由CSDN通过智能技术生成

目录

一、docker网络概述

二. docker的三种原生网络

1.bridge模式

2.host模式

3.none模式

三.docker自定义网络

bridge

Macvlan

四、docker容器间的通信

1.使用名称

2.container模式

3.link模式

4.docker容器访问外部网络

5.外部网络访问容器

五、跨主机的容器网络

macvlan网络方案的实现


一、docker网络概述

Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面。

Docker自身的4种网络工作方式,和一些自定义网络模式

安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host,可以使用以下命令查看:

[root@server1 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
40cded417d85        bridge              bridge              local
77d8c7928820        host                host                local
d14907884859        none                null                local

 

二. docker的三种原生网络

在这里插入图片描述
可以看到容器的宿主机server1上面多了一个网桥接口,这个桥接接口供容器和外界通信
类似于物理机和虚拟机的关系,虚拟机要上网就得通过物理机才可以

在这里插入图片描述

1.bridge模式

docker默认网络模式。此模式将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。开启的容器会自动分配和IP在一个网段的ip地址,并且开启的容器的ip以IP为基础递增关闭容器之后,ip会自动释放。bridge模式只有宿主机才能与运行在其上面的容器进行通信。

运行一个容器

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
可以看到这个容器的ip与桥接接口在一个网段,并且ip地址以网桥ip为基础递增,以网桥ip为网关

开启容器的时候宿主机就能ping通容器

在这里插入图片描述

以上就是基本的bridge模式,一般开启的容器默认使用的也是这种网络模式

 

2.host模式

容器将不会虚拟出自己的网卡,配置自己的IP等,而是直接与宿主机的共享P和端口。

在这里插入图片描述在这里插入图片描述
以host模式运行一个容器vm1

[root@server1 ~]# docker run -it --name vm1 --network host busybox
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 52:54:00:dc:b7:52 brd ff:ff:ff:ff:ff:ff
    inet 172.25.254.1/24 brd 172.25.254.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fedc:b752/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue 
    link/ether 02:42:d6:9a:3b:e7 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:d6ff:fe9a:3be7/64 scope link 
       valid_lft forever preferred_lft forever

在这里插入图片描述
可以看到容器vm1的网络与宿主机一模一样
但可以看到宿主机和容器的运行环境不一样,这就是容器共享宿主机的网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值