docker网络篇

docker原生网络

[root@server1 harbor]# docker-compose stop ##把仓库停掉
docker的镜像是令人称道的地方,但网络功能还是相对薄弱的部分。
docker安装后会自动创建3种网络:bridge、host、none.
docker network ls

bridge

安装查看网络配置的包yum install bridge-utils.x86_64 -y



docker安装时会创建一个名为 docker0 的Linux bridge,新建的容器会自动桥接到这个接口。

默认执行
bridge模式下容器有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的。
容器通过宿主机的NAT规则后可以访问外网。


host

容器不会虚拟出自己的网卡,配置自己的ip。而是使用宿主机的ip。
host网络模式需要在容器创建时指定- -network=host
host模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。

容器里面配置的nginx服务可以直接访问宿主机就可以看到。

none

none模式是指禁用网络功能,只有lo接口,在容器创建时使用- -network=none指定。

自定义网络

自定义网络模式,docker提供了三种自定义网络驱动:

  • bridge
  • overlay 适合it
  • macvlan 适合ct网络专家(只需搞清底层的路由交换)

bridge驱动类似默认的bridge网络模式,但增加了一些新的功能,
overlay和macvlan是用于创建跨主机网络。
建议使用自定义的网络来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址。

创建自定义网桥
[root@server2 ~]# docker network create mynet1
ip addr 查看,自动给我们创建了一个桥接口,且ip是从172.18.0.1开始的
[root@server2 ~]# docker run -d --name demo --network=mynet1 webserver
[root@server2 ~]# docker run -it --rm --network=mynet1 busybox
/ # ip addr
/ # ping demo
这时我们发现我们是可以ping 通demo,这说明这中模式是可以给我们提供解析的
我们再开一个webserver,停掉所有的webserver,再次开启时,顺序反一下,查看ip变化
[root@server2 ~]# docker run -d --name demo2 --network=mynet1 webserver
[root@server2 ~
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值