docker swarm里面的service始终是new状态,起不来是什么原因?
1.ingress网络的ip用尽(默认生成的掩码为24,只有256可分配),无法为新的服务分配vip,可以重启stack,同时在另一个窗口使用journalctl -f -u docker | grep error抓取报错信息,如果有大量的vip报错则是这个原因;
解决:
解决方案
1.1 重启docker能够临时解决;
1.2 停止已启动的docker容器, 然后删除ingress网络:docker network rm ingress,重新生成ingress网络: docker network create --driver overlay --ingress --subnet=10.0.0.0/16 --gateway=10.0.0.1 --opt com.docker.network.mtu=1400 ingress
2.第二个原因,有可能是之前该stack重启某个节点没有将其服务释放干净,导致其network残留,从而新的服务
无法在该节点起来,这个就需要使用docker network inspect NETWORK_NAME做进一步排查。
swarm init 的小建议
docker swarm init --default-addr-pool 10.20.0.0/16 --advertise-addr 192.168.0.1 # 执行这个可以添加
docker swarm join-token manager # 获取加入manger的信息
docker swarm join --token SWMTKN-1-2nhuczkado840s2m
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现