请教大神!!! 修改docker0的IP地址,重启docker,docker0的IP又变成修改前的了

ye_wxi 2017-02-10 06:07:28
virtualbox虚拟ubuntu 16.04,系统自带docker版本1.13.0

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了,好伤心....

请教大神,这怎么解决啊
...全文
4092 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kain 2017-09-07
  • 打赏
  • 举报
回复
可以修改docker.service中的启动参数,bind一个ip或者自己手动创建个网桥,然后通过指定参数 绑定到新网桥就可以了,不用每次都设置
代码誊写工 2017-07-01
  • 打赏
  • 举报
回复
原则上是不能通过容器内部命令保存自定义的ip地址 有两种方法可以设置固定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}
sunshinepaopao 2017-05-25
  • 打赏
  • 举报
回复
你的问题解决了吗 求解决方案~~~多谢!!!

1,162

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧