docker网络

Docker学习笔记


docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看,如图:
这里写图片描述


一,none 网络

none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo ,没有其他任何网卡。容器创建时,可以通过 –network=none 指定使用 none 网络。

封闭意味着隔离,一些安全性要求高并且不需要联网的应用可以使用 none 网络。
比如某个容器的唯一用途是生存随机密码,就可以放到 none 网络中避免密码被窃取。

当然大部分容器是需要网络的。


二,host 网络

连接到 host 网络的容器共享 docker hsot 的网络栈。容器的网络配置与 host 完全一样。可以通过 –network=host 指定使用 host 网络。

直接使用 docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择 host 网络。当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,docker host 上已经使用的端口就不能再用了。


三,bridge 网络

docker 安装时会创建一个命名为 docker() 的 Linux bridge 。如果不指定 –network ,创建的容器默认都会挂到 docker() 上。

bridge 网络配置的 subnet 就是 172.12.0.0/16 ,并且网关是 172.17.0.1 。
容器创建时,docker 会自动从 172.12.0.0/16 中分配一个 IP,这里16位的掩码保证有足够多的 IP 可以供容器使用。

即,docker 默认使用 bridge 网络,所有 bridge 网络的 docker 都处在同一个局域网中,这就让同一个host中的docker 可以通过ip进行通信。


四,user-defined 网络

除了 none 、host 、bridge 这三个自动创建的网络,用户也可以根据业务需要创建 user-defined 网络。


五,容器间通信

容器之间可通过 IP,docker dns server 或joined 容器三种方式通信。

个人认为,通过ip直接进行通信是最简单快捷的,参考bridge 网络。

现在我们有 ubuntu1 和ubuntu2 两个镜像
这里写图片描述

查看 ubuntu1 的hosts
这里写图片描述

查看 ubuntu2 的hosts
这里写图片描述

现在我们在 ubuntu1 ping ubuntu2的局域网 IP
这里写图片描述

在ubuntu2 ping ubuntu1 的局域网 IP
这里写图片描述

实验证明两个镜像是可以通过ip进行通信的。


六,容器与外部世界连接

1,容器访问外部世界

我们在 ubuntu1 镜像中测试是否能访问外网
这里写图片描述

可见,容器默认就能访问外网,这里的外网指的使容器网络以为的网络环境,非特指Internet

docker 是通过NAT的形式实现容器对网络的访问,即通过 docker host 的网卡。

2,外部世界访问容器

外网通过端口映射的形式访问到容器。

docker 可将容器对外提供服务的端口映射到host的某个端口,外网通过该端口访问容器。容器启动时通过 -p 参数映射端口。
这里写图片描述
容器启动后,可通过 docker ps 或者 docker port 查看 host 映射的端口。在上面的例子中,httpd 容器的80端口被映射到 host 32768 上,这样就可以通过 :<32768> 访问容器的 web 服务了。
这里写图片描述

除了动态映射短偶,也可以在 -p 中指定映射到 host 某个特定端口,例如将 80 端口映射到 host 的8080端口。
这里写图片描述

每一个映射的端口,host 都会启动一个 docker-proxy 进程来处理访问容器的流量。
这里写图片描述


七,参考资料

《每天5分钟 玩转Docker容器技术》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值