docker容器设置静态IP与宿主机同一网段通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker容器设置静态IP与宿主机同一网段通信相关的知识,希望对你有一定的参考价值。

很早以前弄过docker容器设置静态ip地址以及容器与容器之间通信,用的不多所以没有记录下来。

今天在网上看到个文章关于设置静态ip地址的。就自己实战下。对了还有个pipework也可以设置。。


操作系统环境

[email protected]:~# cat /etc/issue
Ubuntu 14.04.3 LTS \n \l

宿主机(系统采用ubuntu-14.04.1-server-amd64)的网络采用桥接模式(默认是DHCP模式,还有一种模式就是静态IP),网桥的网段与物理网段相同。目前的物理网段为192.168.75.0/24,网关是192.168.75.2,物理网卡设备为eth0

编辑配置文件/etc/network/interfaces,自定义网桥br0,修改的内容如下

[email protected]:~# tail -n8 /etc/network/interfaces
auto br0iface
br0 inet static    
address 192.168.75.131    
netmask 255.255.255.0    
gateway 192.168.75.2    
bridge_ports eth0    
bridge_stp off    
dns-nameservers 192.168.75.2

保存退出后,重启网络

[email protected]:~# ifdown -a && ifup -a

使用ifconfig命令查看网络接口信息,宿主机ip地址192.168.75.131

技术分享

网桥配置好后,然后就是配置docker网络配置

  • 容器启动网络模式必须为none,用-net=none指定,示例如下

[email protected]:~# docker run -itd --name  x6  --net=none ubuntu /bin/bash
142cbe651cb7289edbc0fa8804e135908c75fb7ac26cf474f55c5e7786049bfb

注:docker容器ID比较长可以简写即可,使用docker ps也可以看到容器ID,示例如下

技术分享

  • 给新运行的容器设置静态IP地址,网上有个哥们使用脚本的方式配置IP然后输入参数即可,我是直接使用它的scripts,142cbe651cb7容器ID,24位掩码,192.168.75.2网关。示例如下

[email protected]:~# sh static_ip.sh 142cbe651cb7 192.168.75.199 24 192.168.75.2

ping一下给容器x6设置的静态ip192.168.75.199

技术分享

  • 进入容器名字为x6,查看下ip地址

技术分享

注:docker容器重启后IP地址就米了

脚本内容如下

技术分享



本文出自 “村里的男孩” 博客,请务必保留此出处http://noodle.blog.51cto.com/2925423/1774081

以上是关于docker容器设置静态IP与宿主机同一网段通信的主要内容,如果未能解决你的问题,请参考以下文章

Docker:Docker实现同Ip网段联通

Docker:Docker实现同Ip网段联通

Docker-多主机通信

FW Docker为容器分配指定物理网段的静态IP

docker与宿主通信突然断了

docker之docker容器flannel模式多网段跨主机通信