1、概述
- docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:
- bridge模式:使--net =bridge指定,默认设置;
- host模式:使--net =host指定;
- none模式:使--net =none指定;
- container模式:使--net =container:NAMEorID指定。
- 可以使用docker network ls来查看
2、bridge模式
- Bridge模式(桥接模式)
- 描述:这是Docker的默认网络模式。当Docker安装并启动时,它会在宿主主机上创建一个名为
docker0
的虚拟网桥,后续每创建一个新的Docker容器(除非特别指定),Docker都会通过docker0
与主机的网络连接。 - 特点:
- 容器内部都会有一个虚拟网卡,名为
eth0
。 - 容器之间可以通过容器内部的IP相互通信。
- 网桥默认IP范围通常是
172.17.x.x
。
- 容器内部都会有一个虚拟网卡,名为
- 命令示例:
docker run -d --name tomcat01 -p 8085:80 tomcat:latest
(注意:--net=bridge
可省略)
- 描述:这是Docker的默认网络模式。当Docker安装并启动时,它会在宿主主机上创建一个名为
3、host模式
- Host模式
- 描述:容器不会拥有一个独立的network namespace,而是与宿主主机共用同一个network namespace。
- 特点:
- 容器没有自己的网卡信息,而是直接使用宿主主机的网络信息。
- 容器和宿主主机共享Network namespace,因此可能会出现端口冲突的情况。
- 命令示例:
docker run -d --name tomcat02 --net=host tomcat:latest
4、container模式
- Container模式
- 描述:container模式与host模式类似,但container模式是与指定的容器共享network namespace,而不是与宿主主机共享。
- 特点:
- 除了网络共享(网卡、主机名、IP地址)外,其他方面还是隔离的。
- 命令示例:
docker run -d --name tomcat03 --net=container:tomcat02 tomcat:latest
(这里tomcat02
是另一个容器的名称或ID)
5、none模式
- None模式
- 描述:如果Docker容器指定的网络模式为none,则该容器没有办法联网,外界也无法访问它。
- 特点:
- 容器内部没有网卡、IP等信息。
- 主要用于测试场景。
- 命令示例:
docker run -d --name tomcat04 --net=none tomcat:latest