docker 容器静态IP配置

为了便于docker容器跟非宿主机的网络通讯,对比了几中实现方式的区别:

实现方式

描述

实现依赖

           优点

           缺点

NAT

端口映射,对外访问使用宿主机IP

不需要依赖任何插件

直接同宿主机连接,网络性能较好

只能单机部署,不能同时存在多个类似坏境

weave

使用weave为docker设置IP

 

Docker自身功能

性能折损大

Overlay

Docker 1.9版本自带

一般需要一个全局的K-V store(sdn controller、etcd、consul)来保存控制信息

部署极其方便

性能折损较大

路由

Docker插件calico/fannel实现

安装网络插件外,不依赖于其他网络设备,可以建立独立的网络环境

性能好,每个容器可设置独立于办公网络的IP

每个容器都需要一条路由记录,当容器太多时,对于路由是一定的压力

Linux bridge

将docker网络桥接到宿主机的网络

不需要依赖任何插件

           

配置、查找问题简单

IP资源消耗大,需要依赖办公网现有的网络设备

鉴于以上,选择linux bridge 实现网络直接的通讯.,此方式借鉴于PPTV的网络模式,使得docker容器共享宿主机网段网络,最好是创建一个网段专门适用于docker容器,否则就有点浪费IP资源。

Linux bridge网络拓扑结构如下:

140606_K4pU_2006667.png

大概的写一下几个主要的命令,以及我操作时遇到的问题和当时的解决方法:

创建docker network:
 docker network create --gateway=10.X.X.X --subnet=10.X.X.0/24 -o com.docker.network.bridge.name=br0 --aux-address "DefaultGatewayIPv4=10.X.X.2"  dockernet  

gateway 建议设置成宿主机的IP,其中br0为Linux桥接网络,DefaultGatewayIPv4为你要设置网段的网关。

1.设置完成后检查网络是否连接OK,一般无法连接的情况有:Linux桥接网络设置失败.

如下为Linux网关丢失,

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.x.0.0     0.0.0.0         255.255.0.0     U     1005   0        0 br0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

网关丢失时手动添加网关:route add default gw 10.X.X.2

2.网络连接成功后,再启动容器时指定网络:再启动docker容器来看看
 docker run -itd --net=dockernet --ip=10.x.x.x ssh

一般启动警告:WARNING IPv4 forwarding is disabled. Networking will not work

解决办法:
# vi /etc/sysctl.conf
添加如下代码:
    net.ipv4.ip_forward=1
 
重启network服务
# /etc/init.d/network restart
 
查看是否修改成功
# sysctl net.ipv4.ip_forward
 
如果返回为“net.ipv4.ip_forward = 1”则表示成功了

3.再次启动docker容器看看,发现容器还是不能跟外部机器访问,只能在同网段内访问

    此时需要查看宿主机的网络是否开启了网络的混杂模式,一般服务器都默认关闭混杂模式的,这个坑找了好久

 

 

 

转载于:https://my.oschina.net/u/2006667/blog/900113

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值