docker容器网络模式

docker网络模式

  • 1.Nat ( network address translation) 桥接bridge模式 docker容器的默认模式
    网络资源隔离
    无需手动配置
    可以访问外网
    外界无法直接访问容器ip
    低性能
    端口管理麻烦 (需要端口映射)
    容器访问外界使用的是iptables的SNAT规则
    外界访问容器使用的是DNAT规则
    ifconfig 其中docker0地址是docker容器的网关
    查看路由表 route -n
    使用端口映射才会生iptables规则,查看iptables命令: iptables -t nat -L -n

  • 2.host
    共享宿主机网络
    网络环境无隔离
    网络资源无法统计
    端口不易管理
    使用场景:就相当于在宿主机多跑了一个进程,比如跑了个apache nginx。
    –net=host

  • 3.other container
    容器A是nat模式,容器B使用容器A的网络模式,容器a和容器b的ip和mac地址完全一样。
    与宿主机网络空间隔离
    容器间共享网络空间
    使用场景:两个容器网络访问特别频繁
    –net=container:xxxxxx

  • 4.none
    无网络配置,可自行配置
    –net=none

  • 5.overlay.
    多机网络

其他

  1. 基于容器A,启动container网络模式的容器B: docker run -it --name xxx --net=container:容器A 镜像名

  2. 次性删除多个容器:docker rm -f $(docker ps -aq) 其中-q是返回所有容器id

  3. 网络地址转换NAT 实现私有ip和公网ip的转换

  4. 防火墙iptables

  5. ping和telnet
    ping验证ip的可达性
    telnet验证服务的可用性

  6. 两个容器之间的通信
    通过docker0链接到一起,每个容器和docker0都由一对veth进行链接

  7. 容器和互联网的通信
    容器通过veth对链接到docker0,docker0通过NAT进行网络地址转换,进而访问外网。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章