docker network 使用

本文介绍了Docker的四种网络模式:bridge(桥接)、host、container和none,详细讲解了每种模式的特点和应用场景。同时,列举了Docker网络的相关命令,包括创建、查看、连接和断开网络,以及网络管理操作。
摘要由CSDN通过智能技术生成

一、Docker的四种网络模式

1.bridge –network bridge 为每一个容器分配、设置 ip ,并将容器连接到 docker0 虚拟网桥上,这也是默认网络模式
2.host –network host 容器不会创建自己的网卡,配置 ip 等,而是使用宿主机的 ip 和端口
3.container –network 容器名称或id 新创建的容器不会创建自己的网卡和配置自己的ip,而是和一个指定的容器共享ip、端口范围
4.none –network none 容器有独立的Network namespace,但并没有对其进行任何网络设置

桥接模式–bridge

Docker服务启动 时,默认会创建一个名称为 docker0 网桥(其上有一个名称为 docker0 内部接口)。该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker会 默认指定docker0 的 ip地址和子网掩码,让主机和容器之间可以通过网桥相互通信。

主机模式–host

不创建任何网络接口,直接使用宿主机的 ip地址与外界进行通信,不再需要额外进行NAT转换。在主机模式下不能publish port。容器将不会获得一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡而是使用宿主机的IP和端口。容器共享宿主机网络ip,这样的好处是外部主机与容器可以直接通信。Docker启动时指定–network=host或-net=host,如果还指定了-p映射端口,此时就会有如下警告:NARNING: Published ports are discarded when using host network mode1并且通过-p设置的参数将不会起到任何作用,端口号会以主机端口号为主,重复时则递增。可以选择无视这个警告或者使用Docker的其他网络模式,例如–network=bridge

容器模式–container

新建的容器和已经存在的一个容器共享一个网络ip配置而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的ip,而是和一个指定的容器共享ip、端口范围等。两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。

none模式

在none模式下,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、ip、路由等信息,只有一个lo接口。

二、常用命令

查看网络

docker network ls

创建网络

#基础用法
docker network create 网络名称

#创建网络时是可以添加一系列参数的:
–driver:驱动程序类型
–gateway:主子网的IPV4和IPV6的网关
–subnet:代表网段的CIDR格式的子网
mynet:自定义网络名称
docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 mynet

不指定任何选项的时候默认的–driver(网络模式)也是bridge(桥接)
但是gateway和subnet会自动生成

查看网络数据源

docker network inspect 网络名称

将容器连接到指定网络

docker network connect 网络名称 容器名称

断开容器的网络

docker network disconnect 网络名称 容器名称

删除所有不在使用的网络

docker network prune

删除一个或多个网络

docker network rm 网络名称

使用示例

创建容器时挂载网络

创建一个桥接类型的网络

docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 myNet1

创建并运行容器时指定网络

docker run --name containerName -p 80:80 -d --network myNet1 myNginx

不想用时可以断开网络

docker network disconnect myNet1 myNginx

容器已存在时连接到新网络

创建一个桥接类型的网络

docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 myNet2

为容器连接新的网络

执行后myNginx容器的网络就变成了myNet2

docker network connect myNet2 myNginx

不想用时可以断开网络

docker network disconnect myNet2 myNginx

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值