如何在Docker容器中设置静态IP地址?

 晋coder 发布于 2022-12-25 14:52

我非常满意Docker默认给我的IP范围176.17.x.x,所以我不需要创建一个新桥,我只想给我的容器一个静态地址这个范围,所以我可以指向客户端浏览器直.我试过用

RUN echo "auto eth0" >> /etc/network/interfaces
RUN echo "iface eth0 inet static" >> /etc/network/interfaces
RUN echo "address 176.17.0.250" >> /etc/network/interfaces
RUN echo "netmask 255.255.0.0" >> /etc/network/interfaces
RUN ifdown eth0
RUN ifup eth0

从Dockerfile,它正确填充interfaces文件,但接口本身没有改变.实际上,在容器中运行ifup eth0会出现此错误:

RTNETLINK答案:不允许操作无法启动eth0

cantSleepNow.. 30

我已经在这里回答了这个问题 /sf/ask/17360801/ 但我现在看到这个问题实际上比上面提到的要早,所以我也会复制答案:

使用Docker 1.10.1版,轻松构建9e83765.

首先,您需要创建自己的docker网络(mynet123)

docker network create --subnet=172.18.0.0/16 mynet123

而不是简单地运行图像(我将以ubuntu为例)

docker run --net mynet123 --ip 172.18.0.22 -it ubuntu bash

然后在ubuntu shell中

ip addr

此外,您可以使用
--hostname指定主机名
--add-host来添加更多条目/etc/hosts

文档(以及您需要创建网络的原因),请访问https://docs.docker.com/engine/reference/commandline/network_create/

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有