Docker Swarm与Python-on-Whales:分布式容器集群管理教程
Docker Swarm与Python-on-Whales分布式容器集群管理教程【免费下载链接】python-on-whalesAn awesome Python wrapper for an awesome Docker CLI!项目地址: https://gitcode.com/gh_mirrors/py/python-on-whalesPython-on-Whales是一个强大的Docker CLI Python包装器它让Docker Swarm容器集群管理变得前所未有的简单。无论你是容器新手还是有经验的开发者这个工具都能帮助你轻松构建和管理分布式应用。Python-on-Whales标志Python与Docker容器在鲸鱼上和谐共处象征着轻松驾驭容器技术为什么选择Python-on-Whales管理Docker SwarmDocker Swarm提供了原生的容器编排能力但直接使用命令行工具管理集群可能会很繁琐。Python-on-Whales通过直观的API封装了Docker Swarm的所有功能让你可以用Python代码轻松控制整个集群。主要优势包括简洁的API用Python代码替代复杂的命令行指令类型安全完整的类型提示减少开发错误自动化友好轻松集成到CI/CD管道和自动化脚本全面覆盖支持Docker Swarm的所有核心功能快速开始安装与初始化首先通过以下命令安装Python-on-Whalespip install python-on-whales然后使用以下Python代码初始化一个Docker Swarm集群from python_on_whales import docker # 初始化Swarm管理器 docker.swarm.init(advertise_address192.168.1.100) # 获取工作节点加入令牌 worker_token docker.swarm.join_token(worker) print(fWorker join token: {worker_token})核心功能Swarm集群管理节点管理Python-on-Whales提供了简单的方法来管理Swarm集群中的节点# 获取所有节点 nodes docker.node.list() for node in nodes: print(fNode: {node.hostname}, Status: {node.status}) # 将节点设置为维护模式 docker.node.update(worker-1, availabilitydrain)服务部署部署服务变得异常简单无需编写复杂的YAML文件# 创建一个简单的Web服务 docker.service.create( nginx:alpine, nameweb-service, replicas3, publish[(8080, 80)], placement[{constraint: node.role worker}] ) # 扩展服务 docker.service.scale(web-service, 5)资源管理Docker Swarm支持通用资源分配Python-on-Whales让这一过程更加直观# 声明节点资源在daemon.json中配置 # { # node-generic-resources: [gpuUUID1, gpuUUID2] # } # 创建需要GPU资源的服务 docker.service.create( nvidia/cuda:11.0-base, namegpu-service, generic_resources[{kind: gpu, value: 1}] )高级操作Swarm配置与安全自动锁定与解锁增强Swarm集群安全性的关键功能# 启用自动锁定 docker.swarm.update(autolockTrue) # 获取解锁密钥妥善保存 unlock_key docker.swarm.unlock_key() print(fSwarm unlock key: {unlock_key}) # 解锁Swarm重启后需要 docker.swarm.unlock(unlock_key)证书轮换保持集群安全的重要措施# 轮换Swarm CA证书 docker.swarm.ca(rotateTrue) # 设置证书过期时间 from datetime import timedelta docker.swarm.update(cert_expirytimedelta(days30))实战案例部署多服务应用下面是一个完整的例子展示如何使用Python-on-Whales部署一个包含Web前端和数据库的多服务应用from python_on_whales import docker # 初始化Swarm如果尚未初始化 docker.swarm.init(advertise_address192.168.1.100) # 创建网络 docker.network.create(app-network, driveroverlay) # 部署数据库服务 docker.service.create( postgres:13, namedb, networks[app-network], environment[POSTGRES_PASSWORDsecret], mounts[db-data:/var/lib/postgresql/data], placement[{constraint: node.role manager}] ) # 部署Web服务 docker.service.create( my-web-app:latest, nameweb, networks[app-network], environment[DB_HOSTdb], publish[(80, 8080)], replicas3, update_config{parallelism: 1, delay: 10} ) # 检查服务状态 services docker.service.list() for service in services: print(fService: {service.name}, Replicas: {service.replicas})总结与下一步Python-on-Whales为Docker Swarm管理提供了强大而直观的Python接口极大简化了容器集群的创建、部署和维护过程。通过本文介绍的基础知识你已经可以开始构建自己的分布式应用了。要深入学习可以查阅以下资源官方文档docs/template/objects/services.mdSwarm功能源码python_on_whales/components/swarm/测试案例tests/python_on_whales/components/test_swarm.py现在就开始用Python-on-Whales来管理你的Docker Swarm集群体验容器编排的乐趣吧【免费下载链接】python-on-whalesAn awesome Python wrapper for an awesome Docker CLI!项目地址: https://gitcode.com/gh_mirrors/py/python-on-whales创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

jupyter-nodejs vs 其他Jupyter内核:为什么Node.js开发者不可错过这个工具?

jupyter-nodejs vs 其他Jupyter内核:为什么Node.js开发者不可错过这个工具?

jupyter-nodejs vs 其他Jupyter内核:为什么Node.js开发者不可错过这个工具? 【免费下载链接】jupyter-nodejs A node.js kernel for jupyter/ipython 项目地址: https://gitcode.com/gh_mirrors/ju/jupyter-nodejs Jupyter Notebook已成为数据科学…

2026/8/4 23:42:37 阅读更多 →
【技术笔记】AD25.8层次原理图输出PDF无法按照指定页面排序

【技术笔记】AD25.8层次原理图输出PDF无法按照指定页面排序

【技术笔记】Altium Designer25.8层次原理图无法按照指定页面排序输出PDF更多内容见专栏:【硬件设计遇到了不少问题】、【Cadence从原理图到PCB设计】 在使用 Altium Designer 25.8 进行层次原理图设计时,发现软件在导出 PDF 时,无法按照用户…

2026/8/4 23:42:37 阅读更多 →
Python游戏开发实战:从Pygame架构到射击游戏打包部署

Python游戏开发实战:从Pygame架构到射击游戏打包部署

1. 项目概述:为什么用Python做射击游戏?提起Python,很多人第一反应是数据分析、爬虫或者Web后端,游戏开发似乎总是C、C#的天下。但如果你是一个独立开发者、一个想快速验证创意的游戏设计爱好者,或者一个希望将编程学习…

2026/8/4 23:42:37 阅读更多 →

最新新闻

鸿蒙6.1 arkui.componentSnapshot组件截图坑:返回PixelMap不是dataURL

鸿蒙6.1 arkui.componentSnapshot组件截图坑:返回PixelMap不是dataURL

本文是「鸿蒙 6.1 API 23 开发坑系列」第 2 篇(ArkUI 桶第 2 篇)。本篇讲 ohos.arkui.componentSnapshot namespace(API 10,鸿蒙 6.1 API 23 基座)——组件截图三个方法 get/getSync/createFromBuilder。鸿蒙坑根因&am…

2026/8/5 0:25:05 阅读更多 →
FDE:AI时代的“宝藏岗位”,小白也能入局,速收藏!

FDE:AI时代的“宝藏岗位”,小白也能入局,速收藏!

FDE(前线部署工程师)是AI领域的热门岗位,需求量激增。该岗位需要工程师懂业务、会沟通、能落地,结合技术、产品思维和行业认知,将AI模型转化为企业生产力。适合有ToB经验、懂产品思维或能驻场沟通的工程师和产品经理转…

2026/8/5 0:24:05 阅读更多 →
支付宝体验技术部拆分!前端转型Agent全栈,小白程序员必收藏

支付宝体验技术部拆分!前端转型Agent全栈,小白程序员必收藏

支付宝体验技术部拆分,前端工程师转型Agent开发全栈。玉伯等专家主导的团队,曾开发Ant Design、AntV等知名开源项目,影响行业。AI技术推动智能Agent兴起,打破前端边界,需掌握大模型、智能体逻辑等能力。组织调整旨在灵…

2026/8/5 0:24:05 阅读更多 →
20个P0级大模型本体概念,产品经理必看,收藏这份学习资料!

20个P0级大模型本体概念,产品经理必看,收藏这份学习资料!

文章介绍了20个大模型本体概念,帮助产品经理在AI产品决策时,不再依赖模糊判断,而是基于精准认知。内容涵盖了模型分类、开源与闭源模型、本地与云端部署、基础模型与对话模型、推理模型、Token、上下文窗口、幻觉、温度参数、系统提示词、思维…

2026/8/5 0:24:05 阅读更多 →
光伏汇流箱LoRa数据采集传输系统方案

光伏汇流箱LoRa数据采集传输系统方案

随着光伏电站规模持续扩大,汇流箱作为光伏阵列与逆变器之间的关键中间节点,其运行状态直接关系到整个电站的发电效率与安全稳定性。当前,传统汇流箱多依赖有线通信方式,存在布线成本高、施工周期长、维护困难等问题,尤…

2026/8/5 0:23:05 阅读更多 →
高速光储充电站物联网监控管理系统方案

高速光储充电站物联网监控管理系统方案

随着新能源车辆不断增多,高速服务区的充电设施也在得到不断扩容与升级,提升充电效率,保障用户体验。其中提升功率、缩短充电时间成为高速服务区充电站发展的重要方向。但需要注意的是,想要提升充电功率,就需要有足够大…

2026/8/5 0:23:05 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →