11.Docker网络:基础原理&示例

【目录导览】
1.Docker入门:什么是Docker?如何安装Docker?
2.Docker入门:Docker命令
3.Docker实战:Docker部署Nginx
4.Docker实战:Docker部署Tomcat
5.Docker实战:Docker部署MySQL
6.Docker镜像:什么是Docker镜像?Docker镜像加载原理?
7.Docker容器:什么是Docker容器?
8.Docker数据卷:数据交互、数据卷、数据卷容器
9.Docker镜像制作:Commit和DockerFile
10.Docker入门学习回顾小结
11.Docker网络:基础原理&示例
12.Docker网络:容器互联之–link
13.Docker网络:容器互联之自定义网络
14.Docker网络:容器互联之不同网络间的容器互联

【示例】

step.1

# 清空Docker所有镜像,用一个空的Docker环境来玩一下Docker网络
docker rmi -f $(docker images -aq)

# 启动Docker后查看一下网卡地址
ip addr

# 如下图,docker0网卡就是docker的“路由器”

11.Docker网络:基础原理&示例_第1张图片

step.2

# 我们启动一个容器,来测试一下宿主机与容器之间的网络连通性
# 以tomcat容器为例
docker run -d -P --name tomcat-1 tomcat

# 启动完成后查看一下tomcat容器内部的网卡信息
docker exec -it tomcat-1 ip addr

11.Docker网络:基础原理&示例_第2张图片

step.3

# 启动tomcat容器之后,再次看一下云主机/物理机的网卡地址信息
ip addr
# 如下图,可以发现比原先多出一个网卡,而且该网卡的对应关系和tomcat容器中的网卡对应关系是一致的

11.Docker网络:基础原理&示例_第3张图片

step.4

# 再启动一个tomcat容器,测试两个容器之间的网络连通性
docker run -d -P --name tomcat-2 tomcat
# 查看tomcat-2的网卡信息
docker exec -it tomcat-2 ip addr
# 如下图

11.Docker网络:基础原理&示例_第4张图片

step.5

# 从tomcat-1容器ping一下tomcat-2容器
docker exec -it tomcat-1 ping 172.17.0.3
# 如下图,发现容器与容器之间是可以正常ping通的

11.Docker网络:基础原理&示例_第5张图片

【容器网络联通原理】

# 在Docker所在的云主机/物理机上查看网卡信息,以已经部署了两个tomcat容器的环境为例
ip addr

如下图,可以看到部署好的两个tomcat容器的网卡信息

11.Docker网络:基础原理&示例_第6张图片

  • 简单理解就是,docker0作为Docker环境的“路由器”,记录着所有运行的docker容器的网卡信息,从而形成一个“局域网”关系,那么在Docker的“局域网”内,容器与容器之间的联通就通过docker0在网卡信息表中匹配或者直接广播的方式实现。

【总结】

  • 安装完Docker,当前云主机/物理机上就会新增一个网卡,叫作docker0
  • 使用Docker每启动一个docker容器,Docker就会给该容器分配一个ip
  • 容器与容器之间的联通桥接模式使用的是veth-pair技术
  • 通过veth-pair技术,在Docker环境中形成一个“局域网”,容器与容器之间通过docker0这个“路由器”进行联通

11.Docker网络:基础原理&示例_第7张图片

你可能感兴趣的:(Docker,docker)