设为首页 收藏本站
查看: 1846|回复: 0

[经验分享] docker 指定ip开容器,并且和内网在同一个网段

[复制链接]

尚未签到

发表于 2018-5-28 07:51:27 | 显示全部楼层 |阅读模式
  

  

docker 指定ip开机器,并且和内网在同一个网段
    第1步:创建自定义网络
    备注:这里选取了100.0.0.0网段,也可以指定其他任意空闲的网段
    docker network create --subnet=100.0.0.0/16 shadownet
    注:shadown为自定义网桥的名字,可自己任意取名。
    第2步:在你自定义的网段选取任意IP地址作为你要启动的container的静态IP地址
    备注:这里在第二步中创建的网段中选取了100.0.0.10作为静态IP地址。这里以启动shadowsocks为例。
    docker run -d --net shadownet --ip 100.0.0.10 --name test  --hostname test 镜像名称
    docker run -tid --net shadownet --ip 100.0.0.10 --name test01  --hostname test01 ubuntusshd   
    第3步
    如果希望可以直接使用容器内的port和ip,那么就把上面定义的网段设置为何内网网卡同一个网段,并且设置把内网的网卡添加到shadownet这个网桥中
    命令如下:
    brctl addif br-05da2d960ae0 eth0   :这个名称你用brctl show 和ifconfig 查看 确定哪一个是你的网桥即可  

  

  

  

1.创建自定义网络
docker network create --subnet=172.10.83.0/24 shadownet
2.查看docker网络创建的网段
root@ubuntu:~# brctl show
bridge name    bridge id        STP enabled    interfaces
br-63b79e46dfef        8000.001a64c511c4    no        eth0
                            vethb34d864
                            vethe3a0421
                           
3.配置桥接eth0的网卡,br-63b79e46dfef这个网卡得根据上面brctl show的结果获取
auto br-63b79e46dfef
iface br-63b79e46dfef inet static
address 172.10.0.83    ## 必须要是eth0,或者说是和你物理网络在同一个网段   
netmask 255.255.0.0        ##和你的物理网络事相同的掩码  
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

4.
创建主机测试
docker run -d -P -p 1112:4201 --net shadownet --ip 172.10.83.12 --name gaogd-test-sshd02 --hostname gaogd-test-sshd02 ubuntu:latest
5.在其他主机ping 这个新建的网段  

1.第一步创建docker 的网络
    docker network create --subnet=172.10.0.0/16 shadownet
    其中172.10.0.0/16 这个网段得和你服务器的内网网段一致
2.修改网络网络地址配置文件
root@ubuntu:/etc# brctl show
bridge name    bridge id        STP enabled    interfaces
br-6b22c669ab26        8000.66bf785d1ad4    no        em2
                            vethdf73551
                           
添加下面配置内容:其中br-6b22c669ab26这个网卡名称,根据brctl show 查看得出,brctl 命令需要额外安装 apt-get install bridge-utils
auto br-6b22c669ab26        
iface br-6b22c669ab26  inet static
    address 172.10.0.1            ## 这个地址是你的内网网段地址,并且要是网段中的第一个可用ip,因为容器的默认网关指向网段的第一个可用ip
    netmask 255.255.0.0         ## 内网掩码
    broadcast  172.10.0.255
    bridge_ports em2     ## 这个em2 是你内网网卡名称
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0
   
3.重启网卡
sudo ifdown br-6b22c669ab26 && sudo ifup br-6b22c669ab26

4.查看    em2 是否在 br-6b22c669ab26   网桥中
root@ubuntu:/etc# brctl show
bridge name    bridge id        STP enabled    interfaces
br-6b22c669ab26        8000.66bf785d1ad4    no        em2
                            vethdf73551
                           
5.打开包转发
echo 1 > /proc/sys/net/ipv4/ip_forward
6.开服务器测试
docker run -d -P -p 13:4201 --net shadownet --ip 172.10.89.3 --name gaogd-test-03 --hostname gaogd-test-03 ubuntussh:latest
7.进入服务器
ping 172.10.0.1
ping 172.10.0.xx  内网的其他服务器
ping www.baidu.com  如果成功就可以了

8.如果不可以,就抓包看具体情况,有可能需要做iptable 转发,或者容器内的默认路由不是知道docker的宿主机,在具体解决
iptables -t nat -A POSTROUTING -s 172.10.0.0/16 -o em1 -j SNAT --to-source=203.166.162.89
具体问题具体分析了。  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481953-1-1.html 上篇帖子: docker dockerfile ubuntusshd 下篇帖子: 运维之我的docker
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表