docker单节点网络模式

本文介绍了Docker的四种单节点网络模式:bridge模式是默认模式,使用NAT方式通信;host模式下容器与主机共享网络栈,需注意端口冲突;container模式允许两个容器共享网络namespace;none模式则不提供任何网络环境,仅限本地连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker网络概况

在这里插入图片描述

四种单节点网络模式

1. bridge模式

docker容器默认使用bridge模式的网络
在这里插入图片描述

docker image ls
docker container run -itd --name peng_bridge --network bridge centos bash  //启动一个容器宿主机会增加一个veth
docker container exec -it peng_bridge bash //容器会增加一个eth0

  • 使用 veth 对,一头在容器的网络 namespace 中,一头在 docker0 上
  • 该模式下Docker Container不具有一个公有IP,因为宿主机的IP地址与veth pair的 IP地址不在同一个网段内
  • Docker采用 NAT 方式,将容器内部的服务监听的端口与宿主机的某一个端口port 进行“绑定”,使得宿主机以外的世界可以主动将网络报文发送至容器内部
  • 外界访问容器内的服务时,需要访问宿主机的 IP 以及宿主机的端口 port
  • 容器拥有独立、隔离的网络栈;让容器和宿主机以外的世界通过NAT建立通信
  • iptables 的 SNTA 规则,使得从容器离开去外界的网络包的源 IP 地址被转换为 Docker 主机的IP地址:
    在这里插入图片描述
2. host模式

在这里插入图片描述

docker container run -itd --name peng_host --network host centos bash
docker container exec -it peng_host bash
  • 这种模式下的容器没有隔离的 network namespace
  • 容器的 IP 地址同 Docker host 的 IP 地址
  • 需要注意容器中服务的端口号不能与 Docker host 上已经使用的端口号相冲突
  • host 模式能够和其它模式共存
3. container模式

在这里插入图片描述

docker container run -itd --name peng_container --network container:peng_bridge centos bash
docker container exec -it peng_container bash

在这里插入图片描述
在这里插入图片描述

  • 因为此时两个容器要共享一个 network namespace,因此需要注意端口冲突情况,否则第二个容器将无法被启动。
  • 从上图片可以看出共用了相同的ip地址
4. none模式
  • Docker Container的none网络模式意味着不给该容器创建任何网络环境,容器只能使用127.0.0.1的本机网络
docker container run -itd --name peng_none --network none centos bash
docker container exec -it peng_none bash

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值