virtualbox虚拟ubuntu 16.04,系统自带docker版本1.13.0docker0的默认IP为172.17.0.1
使用命令设置docker0的IP:
sudo ifconfig docker0 192.168.3.1 netmask 255.255.255.0
设置完后使用命令查看docker0,确实修改成功了。
然后使用命令重启docker服务
sudo service docker restart
再查看docker0的IP地址时又变成默认的172.17.0.1了,好伤心....请教大神,这怎么解决啊
使用命令设置docker0的IP:
sudo ifconfig docker0 192.168.3.1 netmask 255.255.255.0
设置完后使用命令查看docker0,确实修改成功了。
然后使用命令重启docker服务
sudo service docker restart
再查看docker0的IP地址时又变成默认的172.17.0.1了,好伤心....请教大神,这怎么解决啊
有两种方法可以设置固定ip:
1. 把ifconfig命令加入到/root/.bashrc里,不过如果不用docker exe等登录,设置不会有作用;前提是容器有privileged或者cap-add=net_admin的许可,这个不推荐
2. 从外部通过ip netns exec ${NSID} ifconfig eth0 xxxx修改,这个要写成脚本,每次启动该容器的时候都要通过脚本
例如:
#!/bin/bash
[[ "$1" ]] && your_container_name="$1" || { echo "第一个参数是容器名称"; exit 1;}
[[ "$2" ]] && your_image="$2" || { echo "第二个参数是镜像名称"; exit 2; }
[[ "$3" ]] && your_exec="$3" || { echo "第三个参数是运行的程序"; exit 3; }
[[ "$4" ]] && your_ip="$4" || { echo "第四个参数是固定ip"; exit 4; }
docker run -d --name=${your_container_name} ${your_image} ${your_exec}
mkdir -p /var/run/netns
unlink /var/run/netns/${your_container_name}
ln -s /proc/$( docker inspect -f {{.State.Pid}} ${your_container_name})/ns/net /var/run/netns/${your_container_name}
ip netns exec ${your_container_name} ifconfig eth0 ${your_ip}