
如何静态化Docker容器的IP地址?构建网络实现容器固定IP
文章摘要
HeoGPT
这篇文章介绍了如何在使用 docker-compose 部署的环境中为容器设置固定的 IP 地址,以解决容器在重启后因 IP 自动变化导致无法上网的问题。文章首先创建了一个名为 heo_global_network 的自定义桥接网络,并将其 IP 地址段设置为 172.168.0.0/16。然后修改 docker-compose 文件,将容器连接到该外部网络并指定静态 IPv4 地址。通过这些步骤,用户可以确保容器在网络重启后保持稳定的 IP 地址,并成功实现上网功能。
因为我需要给容器添加上网的黑白名单,但是我发现机器一重启,容器就上不了网了,仔细检查后发现容器的ip是自动变化的。。。
那固定ip就成了首要大事。这个文章主要介绍如何在docker-compose部署的环境中,设置网络并固定ip。
我们先定义一个网络
我定义的网络名字叫做heo_global_network
用于网络通信的,所以名字也非常清晰。ip通信网段我设置成172.168.0.0/16
,规定了ip地址的开头为172.68.*.*
我们首先创建这个网络。
1 | docker network create --driver bridge --subnet 172.168.0.0/16 heo_global_network |
你可以根据自己的需求来更改参数。
修改容器
我们来修改docker-compose文件。以我的certimate服务为例,他的docker-compose是这样的:
1 | version: "3.0" |
我们首先要添加heo_global_network的定义:
1 | networks: |
external代表了用已经创建的网络,因为我们最开始已经用命令创建好了。
然后给容器设置静态ip地址:
1 | services: |
最终的文件为:
1 | version: "3.0" |
更新容器
我们cd到docker-compose.yaml文件所在的目录,执行
1 | docker-compose up -d |
即可。我们就可以看到这个容器的ip已经成功固定了。
- 感谢你赐予我前进的力量
打赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 张洪Heo
评论
生成评论
匿名评论
违规举报
✅ 你无需删除空行,直接评论以获取最佳展示效果