1 命令
// 1 查询docker网络模式,默认会有bridge,host,none三种网络模式doceker network ls// 2 创建网络docker network create 网络名,默认网桥bridge模式// 3 删除网络docker network rm 网络名/id// 4 查看网络docker network inspect 网络名/id
2 作用
- 容器间的互联和通信以及端口映射
- 容器ip变动时可以通过服务名直接网络通信而不受影响
3 网络模式
3.1 bridge:虚拟网桥
为每个容器分配、设置IP等,并将容器连接到一个docker0,默认为该模式。
使用--network bridge指定,默认使用dokcer0
3.2 host:主机模式
容器将不会虚拟出自己的网卡,配置自己的ip,而是使用宿主机的IP和端口。
使用--network host指定
3.3 none
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair和网桥连接,IP等。
使用--network none指定
3.4 container
新创建的容器不会创建出自己的网卡和配置自己的ip,而是和一个指定的容器共享IP,端口范围等。
使用--network container:NAME指定
3.5 自定义网络
4 案例:演示自定义网络
// 1 启动2个tomcat容器docker run -d -p 8082:8080 --name tom82 tomcatdocker run -d -p 8083:8080 --name tom83 tomcat// 2 进入容器内部,看是否能ping通docker exec -it tom82 bash// 2.1 ping 各自的ip,能ping通ping 各自的ip// 2.2 ping 各自的服务名,ping失败,此时通过自定义网络解决这个痛点ping tom83// 3 新建自定义网络docker network create 自定义网络名// 4 通过自定义网络启动2个tomcat容器docker run -d -p 8082:8080 --network 自定义网络名 --name tom82 tomcatdocker run -d -p 8083:8080 --network 自定义网络名 --name tom83 tomcat// 5 容器内ping 各自的服务名,ping成功ping tom83
