1. 原有Linux查ip

  1. ifconfig
  2. ip addr

在CentOS 7的安装过程中如果有选择相关虚拟化的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认IP地址192.168.122.1),是做虚拟机网桥的使用的,其作用是为连接其上的虚拟机网卡提供NAT访问外网的功能。
我们之前学习Linux安装,勾选安装系统的时候附带了libvirt服务才会生成的一个东西,如果不需要可以直接将libvird服务卸载,yum remove libvirt-libs.x86_64。
在docker启动之后,会有一个docker0的虚拟网桥,docker0的默认ip地址172.17.0.1

2. docker0

查看docker网络模式命令

  1. docker network ls
  2. docker network --help

图片.png

3. docker network能干嘛

  • 容器间的互联和通信以及端口映射
  • 容器IP变动的时候可以通过服务名直接网络通信而不受影响。

4. docker network网络4种模式

网络模式 简介 使用方法
bridge 为每一个容器分配、设置IP等,并将容器连接到每一个docker0。虚拟网桥,默认为该模式。 使用—network bridge指定,默认使用docker0.
host 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 使用—network host指定。
none 容器有独立的network namespace,但并没有对其进行任何网络设置,如分配veth pair和网桥连接,IP等。 使用—network none指定。
container 新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP、端口和范围等。 使用—network container:NAME或者容器id指定。
自定义网络
  • docker容器内的ip地址是有可能会发生变动的
  • docker还可以自定义网络。

4.1 Bridge模式

图片.png图片.png图片.png

4.2 host模式

直接使用宿主机的IP地址与外界进行通信,不再需要额外进行NAT转换。
图片.png图片.png此时的IP地址就是和主机的IP地址是一样的。

4.3 none模式

图片.png

4.4 container模式

图片.png图片.png图片.png
如果容器2使用容器1的网络,容器1如果停止了,那么容器2就只剩下lo网络了

4.5 自定义网络

如果不用自定义网络,容器内通过ip是可以互通的。但是通过服务名却ping不通。

  1. # 新建网络名
  2. docker network create zy_network
  3. # 查看现有网络名
  4. docker network ls
  5. # 用新建网络运行容器
  6. docker run -d -p 8081:8080 --netword zy_network --name tomcat81 bil/tomcat8-jdk8
  7. # 进入tomcat81
  8. docker exec -it tomcat81 bash
  9. # ping服务名,就能ping通了
  10. ping tomcat82
  • 自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)