博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker 容器静态IP配置
阅读量:6937 次
发布时间:2019-06-27

本文共 1581 字,大约阅读时间需要 5 分钟。

hot3.png

为了便于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 实现网络直接的通讯.,此方式借鉴于,使得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

你可能感兴趣的文章
分析思维导图与绘制思维导图方法介绍
查看>>
AJPFX实列判断一个字符串是不是对称字符串
查看>>
基于corosync+pacemaker实现主从高可用集群
查看>>
安全与加密-使用gpg和openssl实现加密与解密
查看>>
从库备份中恢复一张表
查看>>
[Eclipse] - Eclipse空格替换tab
查看>>
使用XML模板在excel进行配置
查看>>
组策略的优先级是 本地》站点》域》组织单位
查看>>
构造函数,析构函数,对象连的简单应用
查看>>
UI高级----Images.xcassets
查看>>
linux select与多进程的结合
查看>>
Can't open /var/run/atd.pid to signal atd. No atd running?
查看>>
WebSphere概要文件类型
查看>>
app打开本系统自动登陆设计
查看>>
Oracle XTTS跨平台数据库迁移(从Unix迁移数据库到Linux)_Oracle数据库迁移项
查看>>
Linux服务器后门检测RKHunter及被***后处理思路
查看>>
我的友情链接
查看>>
HDU 3826 Squarefree number:题目解答源码
查看>>
Hive表与hdfs文件关联
查看>>
Linux文件夹共享(NFS)
查看>>