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 tomcat
docker 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 tomcat
docker run -d -p 8083:8080 --network 自定义网络名 --name tom83 tomcat
// 5 容器内ping 各自的服务名,ping成功
ping tom83