什么是容器间如何通讯? 简单说就是容器间如何ping的通.

容器常用的有三种网络:

  1. 桥模式(默认): 将容器端口映射到宿主机端口,通过宿主机ip:端口的方式通讯

或者进入容器内部, ip addr查看宿主机给容器分配虚拟的ip,通过该ip就可以ping的通.

     2. 主机模式: 容器是不会拥有自己的ip地址,而是直接使用宿主机的ip地址和端口

     3. 自定义网络模式: 自定义网络, 通过容器的名称就可以获取对应的容器ip地址

五种网络模式!

首先说明: Docker容器每次重启, 容器虚拟的ip地址是会发生改变的(进入容器内部通过ip addr命令查看); 这个ip地址在局域网内是互相能ping通的。

bridge(桥)  默认的模式 

bridge(桥)  默认的模式   Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥。

使用桥, 容器外部访问容器时-----需要映射端口到宿主机

docker run -p 8070:8080   mayikt-member:1

桥模式, 在同一个宿主机上 容器与容器之间相互 都是可以ping的通

Host 主机

Host(主机)  该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。这种模式的好处就是网络性能比桥接模式的好,缺点就是会占用宿主机的端口。

进入容器内部, ip addr命名可以看到该容器的ip就是宿主机的ip地址

None(无网络)

None(无网络)  none模式没有IP地址,无法连接外网,等于就是断网的状态

Container(容器) 共享容器网络

Container(容器) 共享容器网络 该模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信

自定义网络模式

自定义网络模式   自定义网络, 通过容器的名称, 获取对应的ip地址.

例如容器名称为: mysql-1.0, 那么”ping mysql-1.0”效果就类似”ping 真实虚拟的ip地址”

docker 容器piing不同宿主机 docker容器和宿主机通信_容器