4

一篇说明白 Docker 四种网络模式

 1 year ago
source link: https://www.51cto.com/article/720103.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一篇说明白 Docker 四种网络模式

作者:郝光明 2022-10-08 07:17:14
Docker安装启动后会在宿主主机上创建一个名为 docker0 的虚拟网桥,处于七层网络模型的数据链路层,后续每当我们创建一个新的docker容器,在不指定容器网络模式的情况下,docker会通过 docker0 与主机的网络连接,docker0 相当于网桥。

今天给大家聊聊docker四种网络模式,进一步加深对docker技术的理解,欢迎大家一起来学习!

1、docker网络模式分类

docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker主要有以下4种网络模式。

图片
  • bridge模式:--net=bridge  如果不指定的话默认设置。
  • host模式:--net=host
  • container模式:--net=container:NAME_or_ID
  • none模式:--net=none

2、bridge 网桥模式

Docker安装启动后会在宿主主机上创建一个名为 docker0 的虚拟网桥,处于七层网络模型的数据链路层,后续每当我们创建一个新的docker容器,在不指定容器网络模式的情况下,docker会通过 docker0 与主机的网络连接,docker0 相当于网桥。

使用 bridge 模式新创建的容器,容器内部都会有一个虚拟网卡,名为 eth0,容器之间可以通过容器内部的IP相互通信。

docker run -d -name tomcat01 --net=bridge -p 8085:80 tomcat:latest
  • --net=bridge   可省略 ,-p 指定端口映射。
  • 网桥默认 IP 范围是一般都是 172.17.x.x 。

3、host 模式

如果指定的host模式容器不会拥有一个独立network namesace,而是与宿主主机共用network namesace。也就说明容器本身不会有的网卡信息,而是使用宿主主机的网络信息。容器除了网络,其他比如文件系统、进程等依然都是隔离的。

图片
  • --net=host 指定。
  • 容器和宿主主机共享 Network namespace。
  • host模式因为和宿主主机共享network namespace,会有可能出现端口冲突的情况。

4、container模式

container模式和host模式很类似,host模式和宿主主机共享network namespace;container模式和指定的容器共享,两者之间除了网络共享(网卡、主机名、IP 地址),其他方面还是隔离的。

图片
docker run -d -name tomcat02 --net=container:name/id -p 8000:80 tomcat:latest

–-net={容器id 或容器name} 指定。

当前容器和另外一个容器共享 Network namespace。

5、none模式

如果dockers容器指定的网络模式为none,该容器没有办法联网,外界也无法访问它,可以用来本次测试。

docker run -d -name tomcat02 --net=none -p 8000:80 tomcat:latest

-net=none 指定。

容器有独立的Network namespace,但并没有对其进行任何网络设置,如果需要的话,需要自定义配置网络。

责任编辑:武晓燕 来源: IT技术分享社区

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK