【记录】docker笔记(八):Docker网络-none网络、host网络

none 网络

        none 网络,即没有网络。容器仍是一个独立的 Network Namespace,但没有网络接口,没有 IP。

创建 none 网络容器

        在 docker run 命令中,通过--network none 选项指定创建的容器没有网络功能。

docker run -d --name bb5 --network none busybox /bin/sh -c "while true; do sleep 3600; done"

查看容器详情

通过 docker inspect 命令查看该容器的详情,发现其没有 IP,没有网关,没有 MAC 地址。

查看容器网络接口

        通过 ip a 命令查看容器的网络接口,发现其只有一个回环地址 lo,没有其它接口。

host 网络

        host 网络,即与宿主机 host 共用一个 Network Namespace。该网络类型的容器没有独立的网络空间,没有独立的 IP,全部与 host 共用。

创建 host 网络容器

        在 docker run 命令中,通过--network host 选项指定创建的容器为 host 网络。

docker run -d --name bb6 --network host busybox /bin/sh -c "while true; do sleep 3600; done"

查看网络详情

        通过 docker network inspect host 命令查看网络详情,发现容器 bb6 连接在该网络上,但容器 bb6 却没有 IP、MAC,并且该网络模式中居然没有网关 Gateway。因为该网络模式实际相当于没有网络,容器与宿主机共用 Network Namespace,根本就不需要网络连接。

查看 host 与容器网络接口

        通过 ip a 与 docker exec bb6 ip a 命令分别查看宿主机与容器 bb6 的网络接口,发现是一样的。因为它们共用一个 Network Namespace,所以也就共用了所有网络接口。

关于端口映射

        由于容器与宿主机共用一个 Network Namespace,所以无论是 IP 还是应用程序的 Port,容器与宿主机的都是相同的,所以对于容器中应用程序的 Port 不存在映射的问题,host 中的 Port 与容器中的 Port 相同。

        也正因为 host 与容器中的应用使用的是相同的端口号,所以当采用 host 网络模式时,在一个宿主机中只能启动一个应用的一个容器,否则会出现端口号冲突问题。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值