1 命令

  1. // 1 查询docker网络模式,默认会有bridge,host,none三种网络模式
  2. doceker network ls
  3. // 2 创建网络
  4. docker network create 网络名,默认网桥bridge模式
  5. // 3 删除网络
  6. docker network rm 网络名/id
  7. // 4 查看网络
  8. 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. // 1 启动2个tomcat容器
  2. docker run -d -p 8082:8080 --name tom82 tomcat
  3. docker run -d -p 8083:8080 --name tom83 tomcat
  4. // 2 进入容器内部,看是否能ping通
  5. docker exec -it tom82 bash
  6. // 2.1 ping 各自的ip,能ping通
  7. ping 各自的ip
  8. // 2.2 ping 各自的服务名,ping失败,此时通过自定义网络解决这个痛点
  9. ping tom83
  10. // 3 新建自定义网络
  11. docker network create 自定义网络名
  12. // 4 通过自定义网络启动2个tomcat容器
  13. docker run -d -p 8082:8080 --network 自定义网络名 --name tom82 tomcat
  14. docker run -d -p 8083:8080 --network 自定义网络名 --name tom83 tomcat
  15. // 5 容器内ping 各自的服务名,ping成功
  16. ping tom83