目录

一、docker的network常用命令

1.1、查看docker的网络

1.2、创建一个network

1.3、删除网络aa

1.4、查看网络源数据

二、network能干嘛

三、network的五种网络模式

 3.1、network的底层ip与容器映射变化

3.2、docker的bridge

 3.2.1、测试用例

 3.3、docker的host

 3.3.1、测试用例

3.4、docker的none

3.4.1、测试用例

 3.5、docker的container

3.5.1、测试用例

 3.6、docker的自定义网络

3.6.1、启动两台tomcat容器

 3.6.2、测试两台容器之间网络并通

 3.6.3、创建自定义网络

3.6.4、在容器中添加自定义网络

 3.6.5、测试连通


一、docker的network常用命令

1.1、查看docker的网络

docker network ls

如何删除docker内的网络在重新创建 docker network 删除网络_docker

1.2、创建一个network

docker network create aa

如何删除docker内的网络在重新创建 docker network 删除网络_linux_02

1.3、删除网络aa

docker network rm aa

如何删除docker内的网络在重新创建 docker network 删除网络_tomcat_03

1.4、查看网络源数据

docker network inspect bridge

如何删除docker内的网络在重新创建 docker network 删除网络_tomcat_04

二、network能干嘛

1、容器间的互联以及端口映射

2、容器IP变动时候可以通过服务名直接网络通信而不受影响

三、network的五种网络模式

如何删除docker内的网络在重新创建 docker network 删除网络_docker_05

 3.1、network的底层ip与容器映射变化

如何删除docker内的网络在重新创建 docker network 删除网络_docker_06

3.2、docker的bridge

1、Docker服务默认会创建一个docker0网桥(其上有一个docker0内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥相互通信。

2、2 docker run的时候,没有指定network的话默认使用的网桥模式就是bridge,使用的就是docker0。在宿主机ifconfig,就可以看到docker0和自己create的network eth0,eth1,eth2……代表网卡一,网卡二,网卡三……, lo代表127.0.0.1,即localhost. inet addr用来表示网卡的IP地址

如何删除docker内的网络在重新创建 docker network 删除网络_docker_07

如何删除docker内的网络在重新创建 docker network 删除网络_容器_08

 3.2.1、测试用例

第一步,启动两个tomcat容器

#第一台tomcat容器
docker run -d -p 8081:8080 --name tomcat01 30ef4019761d
#第二台tomcat容器
docker run -d -p 8081:8080 --name tomcat02 30ef4019761d

如何删除docker内的网络在重新创建 docker network 删除网络_tomcat_09

 第二步、查看

如何删除docker内的网络在重新创建 docker network 删除网络_tomcat_10

 3.3、docker的host

容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡而是使用宿主机的IP和端口。

如何删除docker内的网络在重新创建 docker network 删除网络_docker_11

 3.3.1、测试用例

第一步、启动容器服务

docker run -d --network host --name tomcat03 30ef4019761d

如何删除docker内的网络在重新创建 docker network 删除网络_linux_12

 第二步、在主机查看

如何删除docker内的网络在重新创建 docker network 删除网络_linux_13

3.4、docker的none

在none模式下,并不为Docker容器进行任何网络配置。

3.4.1、测试用例

docker run -d -p 8084:8084 --network none --name tomcat04 30ef4019761d

查看网络情况

如何删除docker内的网络在重新创建 docker network 删除网络_如何删除docker内的网络在重新创建_14

 3.5、docker的container

新建的容器和已经存在的一个容器共享一个网络ip配置而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。

3.5.1、测试用例

第一步、启动alpine容器服务

docker run -it --name alpine2 alpine /bin/sh
docker run -it --network container:alpine2 --name alpine3 alpine /bin/sh

第二步、验证

如何删除docker内的网络在重新创建 docker network 删除网络_如何删除docker内的网络在重新创建_15

如何删除docker内的网络在重新创建 docker network 删除网络_如何删除docker内的网络在重新创建_16

 3.6、docker的自定义网络

3.6.1、启动两台tomcat容器

#第一台容器
docker run -d -p 8081:8080 --name=tomcat02 30ef4019761d
#第二台容器
docker run -d -p 8082:8080 --name=tomcat02 30ef4019761d

如何删除docker内的网络在重新创建 docker network 删除网络_docker_17

 3.6.2、测试两台容器之间网络并通

如何删除docker内的网络在重新创建 docker network 删除网络_容器_18

 问题:当使用容器名并不能并通网络

如何删除docker内的网络在重新创建 docker network 删除网络_如何删除docker内的网络在重新创建_19

 3.6.3、创建自定义网络

docker network create aa

如何删除docker内的网络在重新创建 docker network 删除网络_linux_20

3.6.4、在容器中添加自定义网络

docker run -d -p 8081:8080 --network aa --name tomcat01 30ef4019761d
 docker run -d -p 8082:8080 --network aa --name tomcat02 30ef4019761d

如何删除docker内的网络在重新创建 docker network 删除网络_tomcat_21

 3.6.5、测试连通

如何删除docker内的网络在重新创建 docker network 删除网络_容器_22