docker network

docker 不启动,默认网络情况中包含ens33、lo、virbr0

docker启动后,网络情况:docker0

docker网络模式命令:

在这里插入图片描述

默认创建三大网络模式

docker network create 网络名

用于新建一个网络

docker network rm 网络名

删除一个网络

docker network inspect 网络名

查看网络数据源

docker network能干啥

容器间的互联和通信以及端口映射

容器ip变动的时候可以通过服务名直接网络通信而不受到影响

网络模式

bridge:

为每一个容器分配、设置IP等,并将容器连接到一个docker0,虚拟网桥默认为该模式

使用network bridge制定,默认使用docker0

host :

容器将不会虚拟出自己的网卡,配置自己的ip等,而是使用宿主机的ip和端口

none :

容器有独立的Network,namespace,DNA并没有对其进行任何网络设置,如分配veth pair和网络桥连接,IP等

container:

新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP、端口范围等

使用network container:NAME或者容器ID指定

bridge

Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为 docker0,它在内核层连通了其他的物理或虚拟网卡。

所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 接口的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信。

容器内部有etho,与网桥上的veth相匹配

在这里插入图片描述

host

直接使用宿主机的IP地址与外界进行通信,不再需要额外进行NAT转换

在这里插入图片描述

容器不会获得一个独立的Networkspace,而是和宿主机公用一个Networkspace,容器将不会虚拟出自己的网卡而是使用宿主机的IP和端口

警告:

docker run -d -p 8083:8080 --network host --name tomcate83 billygoo/tomcat8-jdk8
WARNING: Published ports are discarded when using host network mode

使用host模式的时候,直接可以不写端口映射,host模式是跟主机共用一个端口

none

禁用网络功能,只有lo表示(就是127.0.0.1表示本地回环)

docker run -d -p 8083:8080 --network none --name tomcate83 billygoo/tomcat8-jdk8

container

在这里插入图片描述

实现网络端口共享,当共享源关闭之后,另一个共享者的网络端口将不存在

docker run -it                             --name alpine1 alpine /bin/sh
docker run -it --network container:alpine1 --name alpine2 alpine /bin/sh
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐