docker网络bridge、host、none

docker默认有3中网络bridge、host、none

bridge桥接网络

docker安装成功后,会在宿主机创建一个网桥docker0,可以将网桥docker0理解为一个虚拟的交换机

运行一个nginx容器

docker run --name web -d nginx

安装bridge-utils

yum install bridge-utils

 

看上图,网桥docker0连接了两个端口vethe1db678、if10。

可以认为vethe1db678、if10是一对网卡,这对网卡之间可以通信,并且一端网卡插在docker0交换机中,另一端连接nginx容器,宿主机和容器就能通信。

查看容器ip    docker inspect web 

访问容器

curl 172.17.0.2

 

创建一个busybox  

docker run -d --name=busybox busybox /bin/sh -c "while true; do sleep 3600;done"

docker exec -it busybox /bin/sh

在busybox中可以ping通另一个容器nginx

ping 172.17.0.2

 

容器间通信过程:

创建busybox后,也会再创建一对网卡vethe447c46、if14,一端插在交换机docker0上,一端连接busybox容器。

busybox的请求发送到docker0后,docker0将请求转到nginx中。

 

Host网络表示容器使用物理机的网络命名空间。物理机正在使用的端口,容器不能使用;容器正在使用的端口,物理机不能使用

none即没有网络,容器与宿主机、容器与容器之间无法通信。用于运行一些不需要网络的任务,比如说批处理数据。

发布了51 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u010606397/article/details/90401513