Docker Swarm 中配置文件 Secret 更新后怎么单独回滚

老芳酱_3202

老芳酱_3202

2026-11-16

443人浏览

原创

在 docker swarm 中,secret 更新后无法直接对单个 secret 执行回滚操作,因为 secret 的变更是全局且不可逆的。要恢复旧版本,必须手动重新创建该 secret 并指定旧版本的 base64 编码内容,然后强制更新所有依赖该 secret 的服务以应用新的 secret id。

Docker Swarm 中配置文件 Secret 更新后怎么单独回滚

如何获取并准备旧版 Secret 数据

首先需要从当前运行的服务中提取已更新的 Secret 内容,或者从本地备份中找回旧数据。由于 Swarm 不保留 Secret 的历史版本,你必须确保拥有旧数据的 Base64 编码字符串。如果之前没有备份,可以通过查看服务配置中的 Secret ID 来确认当前状态,但无法直接通过 API 回退到之前的 ID。

Docker Swarm 中配置文件 Secret 更新后怎么单独回滚

echo "old_secret_data" | base64
# 输出: b2xkX3NlY3JldF9kYXRhCg==

假设旧数据的 Base64 编码为 b2xkX3NlY3JldF9kYXRhCg==,你需要将其保存以便后续使用。这一步是关键,因为一旦新 Secret 被创建并应用,旧的 Secret 对象在 Swarm 中虽然可能仍然存在(取决于清理策略),但服务已经绑定到了新的 Secret ID,因此必须显式地用旧数据重建一个 Secret 对象。

Portainer Docker Control
Portainer Docker Control

使用 Portainer API 控制 Docker 容器和堆栈,包括列出容器、启停/重启、查看日志以及从 Git重新部署堆栈。

下载

如何强制服务重新挂载旧版 Secret

创建完包含旧数据的 Secret 后,需要更新所有使用该 Secret 的服务。Docker Swarm 不会自动检测 Secret 内容的变化并重启服务,因此必须手动触发更新。使用 docker service update 命令并添加 --secret-rm 和 --secret-add 参数,或者简单地重新指定相同的 Secret 名称以强制服务重新评估配置。

Docker Swarm 中配置文件 Secret 更新后怎么单独回滚

docker secret create old_secret.txt <p>上述命令首先创建一个名为 <code>old_secret.txt</code> 的新 Secret,其内容为旧数据。接着,通过 <code>docker service update</code> 移除原有的 <code>my_secret</code> 挂载,并重新添加 <code>old_secret.txt</code> 作为 <code>my_secret</code> 挂载到容器中。这样,服务容器内的文件内容将恢复为旧版本。注意,如果服务配置中使用了 <code>file</code> 驱动,容器内的路径权限和内容会立即反映这一变化。若需验证,可进入容器检查文件内容是否已回滚。</p>

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

825

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6919

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

8117

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

3253

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

379

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

511

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

460

26

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

2026.05.15

365

24

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

565

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Docker Desktop故障排查手册
Docker Desktop故障排查手册

共0课时 | 0人学习

Docker镜像构建手册
Docker镜像构建手册

共0课时 | 0人学习