如何在Rancher中管理新增主机的容器并为其创建栈?
管理Rancher新增主机的容器并创建栈的步骤
我来帮你梳理下在Rancher里管理新增主机容器和创建栈的具体操作,逻辑其实很清晰,分两部分来做:
一、管理新增主机上的现有容器
如果这些容器是在主机加入Rancher之前就存在的,默认不会被自动纳入Rancher管理,你需要手动导入后才能统一管控:
- 进入Rancher的基础设施 -> 主机页面,找到你的新增主机,点击主机名称进入详情页
- 在主机详情页中,你能看到所有运行在该主机上的容器,对于未被Rancher管理的容器,点击容器旁的导入按钮,完成导入操作
- 导入完成后,你就可以在Rancher的应用 -> 容器页面统一管理这些容器了,支持启动/停止/删除容器、查看日志、进入终端等全生命周期操作
二、为新增主机创建并管理栈
栈是Rancher中用于组织相关服务、容器的逻辑单元,有两种常用创建方式:
方式1:将现有容器归入新栈
适合把已导入的容器统一归到一个栈里管理:
- 进入应用 -> 栈页面,点击添加栈
- 输入栈的名称和描述,点击创建完成栈的初始化
- 返回容器页面,选中要归入该栈的容器,点击顶部的移动按钮,选择刚创建的栈,确认后容器就会被迁移到目标栈下
方式2:通过Compose/Catalog创建规范化栈(推荐)
这种方式适合从零开始定义服务,并指定服务运行在你的新增主机上:
- 进入应用 -> 栈页面,点击添加栈
- 在创建页面,你可以选择:
- 使用Compose模板:编写Docker Compose定义服务,若要指定服务运行在目标主机,可通过标签调度,示例Compose代码:
services: demo-service: image: nginx:alpine ports: - "80:80" labels: # 替换为你的新增主机的hostname或自定义标签 io.rancher.scheduler.affinity:host_label: hostname=your-new-host - 使用Catalog模板:从Rancher提供的应用模板中选择现成的服务(如MySQL、Redis等),在配置阶段指定调度到目标主机
- 使用Compose模板:编写Docker Compose定义服务,若要指定服务运行在目标主机,可通过标签调度,示例Compose代码:
- 栈创建完成后,你可以在栈详情页统一管理旗下的服务、容器、卷和网络,还能执行一键升级、回滚等批量操作
小提示
在操作前,建议先确认新增主机在Rancher中的状态为活跃,确保主机上的Rancher Agent运行正常,这样所有管理操作才能顺畅执行。
内容的提问来源于stack exchange,提问作者Hadi Rasouli




