0

Docker笔记:一篇学会Docker网络知识

 3 days ago
source link: https://www.51cto.com/article/719445.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Docker笔记:一篇学会Docker网络知识

作者:郝光明 2022-09-23 07:15:22
Docker 使用的是Liunx的桥接原理,宿主机中是一个Docker容器的网桥 docker0。Docker 中所有的网络接口的是虚拟的,虚拟的转发效率高,

今天给大家介绍docker的网络知识,欢迎大家互相交流学习!

1、docker网络介绍

当我们的服务器成功安装docker并启动进程后,就会产生一个docker0的虚拟网桥,本质为Linux网桥(默认为桥接模式),使用的通信技术是Veth-pair技术.

当我们每启动一个容器,docker就给对应容器分配一个eth0,并能够桥接到docker0网卡。这个时候可以把docker0看作为路由器,每个容器可以看作为连接路由器的网络设备,docker0用来管理每个容器的和docker0通信的映射关系。

图片

查看网络信息;

ip addr

具体如下图:

图片

lo:表示本地回环地址

dockers0:表示docker容器安装自动产生的docker0地址。

2、测试容器和宿主主机的通信

2.1 宿主主机可以ping通 docker0

ping 172.17.0.1

执行效果如下图

图片

2.2 容器内部ping宿主主机也可以ping通

ping 192.168.0.116

图片

2.3 dockers中nginx解决没有ping命令的问题

大家如果安装的nginx没有ping命令的话,可以采用下面的两条命令安装ping。

apt-get update #获取更新软件源
图片
apt install iputils-ping #安装ping命令
图片

2.4 容器之间也可以互相ping通

-- 获取docker所有容器的IP地址
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
图片

nginxtest 容器内IP是  172.17.05

nginxtest02 容器内IP是  172.17.06

测试一下是否能够ping通

docker exec -it nginxtest /bin/bash
ping 172.17.0.6
图片
docker exec -it nginxtest02 /bin/bash
ping 172.17.0.5
图片

3、evth-pair技术简介

evth-pair就是一对虚拟设备接口,它们都是成对出现的,一端连着协议,一端彼此相连,所以可以通信。evth-pair可以充当一个桥梁。

4、Docker网络总结

Docker 使用的是Liunx的桥接原理,宿主机中是一个Docker容器的网桥 docker0。Docker 中所有的网络接口的是虚拟的,虚拟的转发效率高,

docker容器网桥的生成周期:docker容器删除,对应的一对网桥就没了。

责任编辑:武晓燕 来源: IT技术分享社区

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK