Docker 容器固定 IP
前言
虽然使用 docker 部署容器实现所需邀的功能非常方便,但是这是建立在 docker 部署容器时的设置完善的情况下。
部署容器时有一点不可避免:固定容器 IP 。
如果没有固定分配的 IP ,容器提供的服务将是不可靠的:
- 每次主机重启时,如果容器没有固定 IP ,容器的 IP 将由启动顺序决定。这将导致类似无法远程访问数据库等等情况时,发送错误的请求,从而使得服务提供失败。
创建自定义网络
默认的 docker0
网络是不支持容器固定 IP 到该网段的,必须先创建一个自定义网络,才能固定容器 IP 到这个自定义网络中。
-
否则报错:
复制
Failure user specified IP address is supported on user defined networks only
命令行创建
-
格式:
复制
sudo docker network create --subnet=[自定义网络广播地址]/[子网掩码位数] [自定义网络名]
-
示例:
复制
sudo docker network create --subnet=172.20.0.0/24 yogile0
--subnet
:设置前 24 位为网络位,后 8 位为主机位,该网段可用 IP 地址:172.20.0.1
到172.20.0.254
。
-
查看更多参数:
复制
sudo docker network create --hlelp
Portainer 图形化创建
-
Portainer 中,点击 “Networks” 即可看到网络列表。
-
点击 “Add network” 开始创建网络。
-
最简单的网络创建需要示例:
- 最简单的网络创建只需要
Name
和Subnet
信息,更多设置同命令行帮助。 Gateway
:如果不填默认网关为首位可用主机名(这里是 172.20.0.1)。
- 最简单的网络创建只需要
-
点击最下面的 “Create the network” 即可完成创建网络。
-
回到 “Networks” 即可看到网络列表中多出了网络
yogile0
。
固定容器 IP
命令行固定
-
简单格式:
-
注意:“选定网络下固定 IP 地址” 不可是网关地址。
如果设置网络时,不填网关,默认为首位可用主机名(这里是 172.20.0.1)
复制
sudo docker run -it --name [容器名] --net [网络名] --ip [选定网络下固定 IP 地址] ubuntu:latest /bin/bash
-
-
示例:
复制
sudo docker run -it --name network-test --net yogile0 --ip 172.20.0.2 ubuntu:latest /bin/bash
Portainer 图形化固定
作者:Yogile
出处:https://www.cnblogs.com/Yogile/p/12944741.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构