很早以前弄过docker容器设置静态ip地址以及容器与容器之间通信,用的不多所以没有记录下来。
今天在网上看到个文章关于设置静态ip地址的。就自己实战下。对了还有个pipework也可以设置。。
root@zxl-node4:~# 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,修改的内容如下
root@zxl-node4:~# 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
保存退出后,重启网络
root@zxl-node4:~# ifdown -a && ifup -a
使用ifconfig命令查看网络接口信息,宿主机ip地址192.168.75.131
容器启动网络模式必须为none,用-net=none指定,示例如下
root@zxl-node4:~# 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网关。示例如下
root@zxl-node4:~# 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
原文地址:http://noodle.blog.51cto.com/2925423/1774081