0 目录
简介
none网络
host网络
bridge网络
容器间融信
容器与外界通信
总结
1 简介
单主机网络大概有三种网络 none网络、host网络、bridge网络
查看网络: docker network ls
2 none网络
无internet连接
3 host网络
直接共享主机的网络
用法:--network=host
优点:性能高,反应快,直接用主机的网络栈,不用额外创建自己的
缺点:灵活性受限(端口共用等)
4 bridge网络 (user-define有三种网络,bridge,overlay,macvlan,其他两个是跨主机)
容器默认网络,拓扑结构为一对网卡,容器一个虚拟网卡,网络一个虚拟网卡
如何让不同bridge网络容器相互通信?docker network connect my_net container_id
5 容器间通信
5.1 docker dns通信
即docker 1.10以上版本的docker daemon支持dns通信,ping后面不用加ip而加容器名就ok了
限制:只能用于使用user-define的网络的容器,即默认的bridge
5.2 joined网络
即容器共享其他容器的网络
docker run -d --name=web1 httpd
docker run --network=container:web1 httpda
这样httpda就共享了web1(httpd)的网络
6 容器与外界通信
6.1 容器如何访问外界
默认容器可访问外界
逻辑为容器网卡-> docker网络网卡 -> 主机网卡(ip r查看)
6.2 外界如何访问容器
端口映射 即启动容器时把端口映射给主机。每个容器会有一个docker-proxy进程处理访问容器的流量
9 总结
怎么查容器和网络的网卡对? brctl show查网络的网卡,登到容器里ip a看容器 网卡
查看容器如何访问外界 iptables -t nat -S
ip r # 看docker host路由表
ip a # 看所有网络