于今腐草无萤火,终古垂杨有暮鸦。这篇文章主要讲述Docker 网络相关的知识,希望能为你提供帮助。
docker网卡和高可用Docker服务安装完毕后,默认为每个宿主机生成docker0网卡地址为172.17.0.1/16,作用通过它NAT访问宿主机的服务包括外网
docker结合负载实现网络高可用架构
实现思路:
1、docker容器1部署keepalived、haproxy、nginx
2、docker容器2部署keepalived、haproxy、nginx
3、结合应用间负载进行部署配置
【Docker 网络】
docker网络互联网络互联情景
pod:
容器到容器(k8s中同一个pod)
容器到容器(k8s中非同一个pod)
同一服务器
非同一服务器
容器到内网
内网到容器
网络三种类型
docker网络类型分为三种类型,?bridge、host、none?,docker network --help命令进行网络部分的帮助
bridge:
默认模式,无需指定模式
使用自定义IP,也可以DHCP
host
启动容器时命令指定网络模式为host,-net=host
不获取IP地址,直接使用物理机IP,并监听物理机IP监听端口,不会创建虚拟网卡
网络性能利用最高,适合mysql/kafka/redis/大数据容器业务,缺点是容器之间端口不能相同,不支持端口映射,适合固定的业务
none
没有网络包括网卡、IP、路由,命令指定-net=none
container
与已经存在的容器共享一个网络,命令指定-net=container
两个容器间通过lo网卡及容器ID通信
容器之间互联
通过名称、自定义名称(别名)互联,因为容器启动内部ip地址是DHCP分配的,名称/别名相对固定
容器跨主机在具备通信的情况下,宿主机做一个网络路由,复杂的环境使用google开源的k8s
思路
修改宿主机默认网段-更改服务器网段-重启网卡-添加静态路由-检查iptables规则
推荐阅读
- 目录同步实战案例(用rsync+crontab实现/www目录定时同步)
- 给 Docker 版本升级
- Linux之nohup命令
- OpenSSL SSL_read: Connection was reset, errno 10054
- ansible-playbook实现MySQL的二进制部署
- ubuntu基础环境设置
- 记录一次PG数据库宕机的REPMGR切换
- ansible-playbook实现Apache批量部署
- ansible快速部署cassandra3集群