首页 文章 精选 留言 我的

精选列表

搜索[一键安装包],共10000篇文章
优秀的个人博客,低调大师

混合云容灾之VMware容灾一键回切

前文 介绍了如何利用阿里云的混合云容灾服务对本地的数据中心做保护,并在本地虚拟机出现故障的时候以秒级RPO,分钟级RTO在阿里云ECS上进行恢复。但是对于对于一个完整的容灾场景来讲,云上恢复出来的ECS只能算是一个“云备胎”,只有把这个“云备胎”转正回到用户本地,才算是一次真正的“灾难恢复”。本文主要介绍如何在VMware虚拟化环境(vSphere)中,利用阿里云关键业务型容灾(Business Critical Disaster Recovery, BCDR)服务,把本地虚拟机出现问题后在云上恢复出来的ECS回切到本地的vCenter中。 环境准备 先参照前文 ,在vCenter中部署一台BCDR 容灾网关,并在一台被保护的Windows服务器上安装复制程序,启动复制: 模拟本地故障,启动云上恢复 在进入实时复制的阶段后,直接把被保护服务器电源关闭,我们可以立刻在控制台上看到一个异常的状态: 此时点击“故障切换”: 恢复点选择默认的“当前时间”即可: 等待几分钟后,可以看到恢复的ECS已经成功拉起,可以通过下图到ECS详情页的链接去检查机器的状态: 确认无误后,点击“完成故障切换”,清理掉复制相关的数据: “云备胎”本地恢复(failback) 在我们确认本地的环境正常可以把恢复出来的ECS回切的时候,点击“反向注册”: 然后在“站点对信息”的tab下,点击添加计算平台: 输入要恢复到的vCenter的地址以及一个有足够权限的用户名和密码: 添加成功后,我们在受保护服务器页面启动反向复制,并配置相应的复制信息: 需要注意的是,复制存储(Datastore)和复制网络(Network)的选择是依赖于计算资源的,而计算资源(Compute Resource)的选择是依赖于复制位置(Location)所在的Datacenter,这一过程和利用vSphere client创建虚拟机是几乎一一对应的,熟悉vSphere的同学对这个过程肯定会非常熟悉 在进入“反向实时复制”的阶段后,我们就可以随时进行转正(恢复)操作了: 耐心等待几分钟看到故障恢复完成后,就可以去vCenter里检查已经转正的“备胎”啦: 闭环 当然,这个时候我们在确认恢复成功了之后,可以继续把它保护起来(复制到云上): 这样,我们就回到了一个最初的保护状态(本地->云上),形成了一个完整的闭环,就再也不用担心本地出现故障导致业务长时间中断造成的损失了!

优秀的个人博客,低调大师

Docker新功能曝光,一键自动生成 Dockerfile 和 Compose 文件

本文首发自“Docker公司”公众号(ID:docker-cn)编译丨小东每周一、三、五 与您不见不散! 在 DockerCon 大会上,我们展示了即将推出的 Docker Desktop 版的全新功能,该功能将让您比以往更加容易地设计出基于容器的应用程序。对于一小部分开发人员来说,Docker Desktop 的当前迭代拥有将应用程序进行容器化所需的一切,但这需要先了解 Dockerfile 和 Compose 文件的技术参数,才能开始使用 Docker CLI(命令行界面)来构建和运行您的应用程序。 但是我们一直在考虑如何将这个功能带给所有的开发人员。我们希望让容器化变得更加易用,而且我们也希望让共享和协作变得更加容易,并将基于容器的开发集成到更多开发人员的工具集中。这项新的指导性工作流程功能就是今天我们想要展示的,我们会在这里分享更多细节,并畅想未来。 首先你会注意到这是一个图形化的工具。我们并没有打破任何已经运作的东西,在幕后仍然是使用 Dockerfiles 和 Compose 文件来创建一切,我们只是为您从 A 点到 B 点提供了一种新的途径,因为并不是每个人都想从头开始编写 Dockerfiles 和 Compose 文件。 创建新的自定义应用程序 当您单击“Custom application(自定义应用程序)”按钮启动工作流程时,您将看到一个罗列着服务的列表,您可以将其添加到新的应用程序中。您选择的每个服务都将成为最终应用程序中的一个容器,而 Docker Desktop 将负责为您创建相关的 Dockerfiles 和 Compose 文件,以便完成后续步骤。 目前,您还可以在添加服务时对服务进行一些基本的自定义:您可以根据所选服务更改其版本、端口号和其他一些选项。 组装您的应用程序 当您在应用程序中选择了所需的所有服务并准备好继续进行操作时,您需要先给应用程序命名,并指定生成文件的存储位置,然后点击“Assemble(组装)”按钮。 组装步骤:为每个服务创建 Dockerfiles 文件,用于启动整个应用程序的 Compose 文件,以及为大多数服务创建一些基本的代码存根,为您启动应用程序提供足够的支持。当然,您可以在选择的编辑器中打开代码存根并立即开始开发,或者用现有的代码替换它们。为该服务创建的 Dockerfile 是设置好的,您可以为其提供任何代码并将其添加到构建的容器中。需要重申的是,这是一个标准的、纯文本的 Dockerfile 文件。因此,如果您或您的团队的其他成员想要深挖和定制容器镜像,那么就可以根据需要修改 Dockerfile 文件。 您选择成为应用程序一部分的每项服务都将拥有自己的Dockerfile,以及启动服务所需的代码存根。 运行您的新应用程序 应用程序设计功能还可以创建 Compose 文件,您需要将您选择的所有服务作为一个完整的应用程序组合在一起。就像 Dockerfiles 文件一样,这是一个标准的 Compose 文件,如果您愿意,可以打开并自定义。如果您碰巧知道 Docker CLI 命令,那么您就足以启动任何单个服务或整个应用程序。但是,引导式工作流的重点在于为您做到这一点,因此界面中有一个“Run Application(运行应用程序)”按钮来协调一切: 这将从 Dockerfiles 文件中为每个服务启动构建进程,,然后根据 Compose 文件中的指定启动您的应用程序。您可能会注意到用户界面中的“在 Visual Studio 中打开代码”按钮,这是我碰巧安装在这台笔记本上的编辑器。点击该按钮,您就可以直接看到编辑器中的项目文件,准备开始构建新的容器代码测试循环。 从模板开始构建 这就是“自定义应用程序”工作流程,但在这些新工作流程中还有另一种创建应用程序的方法,基于模板的设计。 您将在此工作流程中看到的主要区别是,您将看到预先配置的应用程序模板,而不是自己选择所有单个服务: 这个想法的目的是,团队最终将能够创建属于自己的模板,使协作和共享变得更加简单。这是目前客户反馈给我们特别感兴趣的一个功能,不仅仅是为了共享,也是为了应用程序架构师和安全团队能够创建预先批准的模板,并在开始就限制可以使用的服务。 我们正在努力为这些工作流程添加更多功能:我们正在完成对 Secrets 、 Volumes 和Networks 等剩余组合功能的支持。我们还希望添加与 CI 系统的集成,并允许您直接从 Docker Desktop 部署到 Docker 企业版。 所有开发人员的 Docker 让 Docker 可供更广泛的开发人员访问是一个主题,您会看到我们一次又一次地回来。如果您有想法帮助我们实现这一目标,请告诉我们。如果您有兴趣尽早访问 Docker Desktop 中的新应用设计功能,请注册 beta.docker.com。

优秀的个人博客,低调大师

阿里云发布ECS磁盘加密,一键加密,业务0改动

当下,数据安全问题层出不穷,数据安全已经成为企业用户的生命线。为了保障用户数据安全,阿里云ECS云服务器正式向全网客户发布了“ECS磁盘加密”功能。 阿里云 ECS 磁盘加密功能可以对云盘和共享块存储加密,并提供了一种简单但非常安全的加密手段,对新创建的云盘进行加密处理。 传统的加密手段会给用户带来极高的使用成本:搭建密钥管理基础设施,更改业务流程,在安全性得到提高的同时,却降低了运营效率,提高了运营成本。 ECS磁盘加密与传统的加密手段不同的是,客户无需在公共云构建、维护和保护自己的密钥管理基础设施,也无需更改任何已有的应用程序和运维流程,无需做额外的加解密操作,磁盘加密功能对于业务是全面无感的。通过该功能,阿里云的客户能对ECS云服务器上指定的云盘进行数据加密,每个新创建云盘都使用一个唯一的 256 位密钥加密。一旦加密,此云盘的所

优秀的个人博客,低调大师

手机Markdown写作:插图一键同步七牛图床

把你的手机变成一款真正的内容生产与发布工具。 场景 如果你平时喜欢记录与写作,那么以下的场景你很可能曾经遇到过: 通勤或者旅途中,你偶然见到的景象或者资料触动了你,让你灵光一闪,突然有了很好的创意。此时,你的电脑并不在身边。不过作为高效能人士,这点儿困难难不倒你。你立即用手机的笔记应用(例如Evernote或者有道云、为知等)写下了文字内容,并且把相关的插图也都采集了进来。插图有的来自于网络,有的来自于手机相册。 图文并茂,写好了。你很开心。但是显然你并不满足于自己读着高兴,而是希望发布出去,分享给更多人。 此时你会遭遇到一个严重的问题——内容的编辑和排版。 如果你有个秘书,甚至是编辑团队,那一切就都好办了。你可以直接把笔记分享给他们。他们自然就可以替你把后续加工的工作都处理好。 如果很不幸,你跟我一样,没有配备秘书,更没有编辑团队,那这些事情就需要自己亲力亲为了。 你可以等,等到达目的地甚至是休假结束,有了电脑再去完成后期编辑工作。然而在这样新热点不断涌现的时代,抓住一个重要的、吸引人的主题是非常困难的。一旦抓住了机会,创作出了内容,你真的愿意等上几个小时甚至是几天再发布吗? 痛点 随时记录、创作与发布的需求催生出了手机上的各种写作工具。 如果你跟我一样是个懒人,希望用最简单的方式排版出美观的文章,那么Markdown是必不可少的利器。 在电脑上面使用Markdown,写作者的需求已基本得到满足。但是在手机上用Markdown编辑器,却有个迟迟没能解决的痛点——插图。 别逗了,哪有不能插图的Markdown编辑器啊?! 没错,任何一个Markdown编辑器都包含插入图片的功能。但是单一的插图功能不能满足创作类用户的需求。 如果插入本地图像只能保存本地链接,那我怎么发布与分享? 如果只能用外部链接来插图,本地存储的图像怎么办? 如果图片上传到图床需要手动操作,面对数十张图片不觉得繁琐吗? 如果手动上传到图床,还得一一更新文章里的图片链接,把本地链接替换为图床链接,那我真的有摔手机的冲动了…… 方便地本地化插图、轻易地同步到图床,并且可以立即获取使用图床链接的全文版本才是用户真正的需求。 连最著名的Markdown写作神器Ulysses,都没能做到这一点。 从前,我也只能先把文字内容写好,标记出需要插图的位置。等回到笔记本电脑跟前的时候,再进行插图与发布。 因而,当我突然发现一款手机Markdown编辑应用居然悄无声息地解决了这个痛点的时候,自然要迫不及待地分享给同样喜欢写作的你。 设置 发现这款工具,是因为朋友向我求助。说是在使用它插图过程中,遇到了问题。 我实际操作之后,发现问题来自于设置中的细节。因此这里我把设置详细介绍一下,避免其他朋友再次踩到坑。 七牛云存储是国内的Markdown写作者们常用的图床,免费而且可靠。这里咱们就用七牛来做个例子。关于如何设置七牛云存储,请参考拙作《Markdown两键排版微信公众号文章》。 在手机上安装好了这款编辑器之后,首页点击左上角的设置按钮,下拉到“图片上传部分”,选择“增加本地图片上传服务”。 名称一栏随便填写。 API地址建议不要动。 空间名称、Access Key和Secret Key如实填写。 关键在于“图片URL前缀”这一部分,七牛“存储空间”的“测试域名”里面给了你一个域名。请注意拷贝过来填写的时候,前面加上"http://",切记。 当你设置完毕之后,点击“验证设置”。如果提示正常,就意味着你可以使用了。 样例 我们来举一个例子,看看这款手机Markdown编辑器如何帮助你快速排版与发布图文并茂的文章。 除夕的早上,天气良好。我在学校的操场锻炼。学生们都已经放假回家了,平日热闹的操场此时空旷无人。于是我拿出手机,拍了张照片。然后打开编辑器,写了两行字。 然后我点击插图的图标,把这张照片插入进来。注意此时编辑器里面使用的是图片本地链接。 预览效果不错。下面我们同步图片到图床。 点击右下角的导出图标。 选择“本地图片上传至图床”。 点击右上角的“上传”按钮。你的图片瞬间就同步到了七牛图床上面。 而且此时图片的“已上传”部分会显示图床图片链接。 我需要手动拷贝并替换本地图片链接吗? 根本不用。注意到左下角的“复制Markdown”按钮了吗? 点击它。 好了,包含七牛图床图片链接的Markdown内容已经复制成功了。 我们打开Day One日记应用测试一下。新建一则日志,把剪贴板里面的内容复制进来。 图片的链接是不是七牛图床链接? :-P 结束编辑,预览一下。 大功告成! 操作流程介绍完毕。 希望这款手机Markdown编辑应用可以帮助你随时抓住好点子,第一时间发布与分享你的创作成果。 写作快乐哦! 讨论 你是否还知道其他好用的移动端Markdown应用?它给你带来了哪些惊喜?你自己的哪些个性化需求尚未得到满足呢?欢迎留言分享给大家,我们共同讨论学习。 延伸阅读: Markdown两键排版微信公众号文章 Markdown懒办法排版微信公众号文章

优秀的个人博客,低调大师

从零搭建私有云相册:使用Docker一键部署Damselfly实战

# 一、Damselfly介绍 ## 1.1 Damselfly简介 > `Damselfly`是一个基于服务器的高性能照片管理应用程序,专为大规模图像集合设计,通过丰富的元数据、AI 视觉识别和快速搜索功能,实现高效的照片组织、检索与协作。 ## 1.2 Damselfly主要特点 - **广泛格式支持**:兼容 JPG、PNG、HEIC、TI TIFF、WebP、BMP 及主流 RAW 格式(如 CR2、NEF、ORF、DNG)。 - **AI 图像识别**:集成面部检测、人脸识别、物体识别与图像颜色分类等计算机视觉能力。 - **全文与高级搜索**:支持关键词短语、部分匹配及按日期、设备、方向、文件大小、标签状态等多维度筛选。 - **视觉相似性搜索**:可查找外观相似的图片,提升内容发现效率。 - **极速性能**:在包含 50 万张图片的库中,搜索响应时间低于 1 秒。 - **非破坏性关键词标记**:使用 ExifTool 更新 IPTC/EXIF 元数据,避免 JPEG 重新编码导致的质量损失。 - **多用户与权限控制**:支持多账户及基于角色的访问控制(如只读用户无法编辑标签)。 - **地理信息可视化**:在地图上显示带有地理位置元数据的照片位置。 - **选择篮功能**:用户可创建私有或共享的图像篮,用于下载、导出至外部工具或上传至 WordPress。 - **自动后台索引**:新增或修改图像时自动更新索引与缩略图,无需手动干预。 - **跨平台桌面客户端**:提供基于 Electron.NET 的 macOS(通用)、Windows 和 Linux 桌面应用,增强本地集成体验。 - **灵活部署**:支持 Windows、Linux、macOS 及 Docker 环境,后端基于 .NET 7,前端采用 Blazor WebAssembly。 - **媒体排除机制**:通过在文件夹中放置 `.nomedia` 文件,阻止 Damselfly 扫描特定目录。 - **安全导出与水印**:支持导出带水印的图像,便于社交媒体分享或邮件发送。 # 二、本次实践规划 ## 2.1 本地环境规划 > 本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。 |hostname|IP地址 |操作系统版本 |Docker版本 |部署项目|备注| | --- | --- | --- | --- | --- | --- | |jeven|192.168.3.88 |Ubuntu 24.04.2 LTS|28.5.0 |Damselfly |——| ## 2.2 本次实践介绍 > 1.本次实践部署环境为个人测试环境,生产环境请谨慎; > 2.在Docker环境下部署Damselfly照片管理系统。 # 三、本地环境检查 ## 3.1 检查Docker服务状态 > 检查Docker服务是否正常运行,确保Docker正常运行。 ``` root@jeven:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) Active: active (running) since Tue 2025-12-02 00:51:31 CST; 1min 11s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 75393 (dockerd) Tasks: 32 Memory: 34.1M (peak: 34.8M) CPU: 1.248s CGroup: /system.slice/docker.service ``` ![](https://developer.qcloudimg.com/http-save/4995888/abb255efc952dabcb17c36c31c1cd133.png) ## 3.2 检查Docker版本 > 检查Docker版本 ``` root@jeven:~# docker -v Docker version 28.5.0, build 887030f ``` ## 3.3 检查docker compose 版本 > 检查Docker compose版本,确保2.0以上版本。 ``` root@jeven:~# docker compose version Docker Compose version v2.39.4 ``` # 四、拉取Damselfly镜像 > 下载Damselfly镜像,执行以下命令: ``` docker pull webreaper/damselfly ``` ![](https://developer.qcloudimg.com/http-save/4995888/995dbfbb9b5c907387ca4776293e302c.png) # 五、部署Damselfly服务 ## 5.1 创建部署目录 - 创建部署目录 ``` mkdir -p /data/damselfly/{config,thumbs,photos} && cd /data/damselfly ``` - 目录权限设置: ``` chmod -R 777 /data/damselfly ``` ## 5.2 docker compose方式部署 > 新建及编辑docker-compose.yaml文件,宿主机映射端口可自行设置,注意防止端口冲突。 ``` vim docker-compose.yaml ``` ``` version: '3' services: damselfly: image: webreaper/damselfly container_name: damselfly restart: unless-stopped ports: - 7100:6363 volumes: - ./config:/config - ./thumbs:/thumbs - ./photos:/pictures ``` |宿主机路径(Host Path)|容器内路径(Container Path)|说明| | --- | --- | --- | |./config |/config |存放 Damselfly 的应用程序配置文件,如数据库、用户设置等。| |./thumbs |/thumbs |用于存储系统自动生成的图像缩略图,提升浏览和搜索性能。| |./photos |/pictures |挂载用户的照片库根目录,Damselfly 将从此路径索引和管理所有图片。| ## 5.3 创建Damselfly容器 > 执行以下命令,创建Damselfly容器。 ``` docker compose up -d ``` ![](https://developer.qcloudimg.com/http-save/4995888/caeab6b6f5d29b72a27aa57387c2ae94.png) ## 5.4 查看Damselfly容器状态 > 检查Damselfly容器运行状态,确保Damselfly容器正常启动。 ``` root@jeven:/data/damselfly# docker compose ps WARN[0000] /data/damselfly/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS damselfly webreaper/damselfly "sh /damselfly-entry…" damselfly 24 seconds ago Up 23 seconds 0.0.0.0:7100->6363/tcp, [::]:7100->6363/tcp ``` ![](https://developer.qcloudimg.com/http-save/4995888/a30efa50bde89822eb4a8ac3d321bf2f.png) ## 5.5 检查Damselfly容器日志 > 检查容器运行日志,确保Damselfly服务正常运行。 ``` docker compose logs ``` ![](https://developer.qcloudimg.com/http-save/4995888/aed130a2fe9d0258f2b410d1e7829f3e.png) # 六、访问Damselfly服务 ## 6.1 访问Damselfly首页 > 浏览器地址: `http://:7100`,访问Damselfly初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。 ![](https://developer.qcloudimg.com/http-save/4995888/b6c98ef54fd36b3834b65b259013799e.png) ## 6.2 上传图片 > 将本地图片上传到/data/damselfly/photos/目录下,如下所示: ``` root@jeven:/data/damselfly# cd photos/ root@jeven:/data/damselfly/photos# ls v2-61dca6243b04c6eebc3d0c29891bbd49~resize_1440_q75.png v2-768e5c8c516926c529b73e6c4788a1a0~resize_1440_q75.jpg v2-6dc50c16c4184fddd69718633cf9f267~resize_1440_q75.png v2-aa1fabee7fefc859930de3fcebbdc6d4~resize_1440_q75.png root@jeven:/data/damselfly/photos# ``` ## 6.3 浏览照片 > 刷新Damselfly页面后,即可看到所有的照片。 ![](https://developer.qcloudimg.com/http-save/4995888/5c301597995d1e750da74f11f3175514.png) # 七、总结 > 通过本次实践,我们成功使用 Docker 快速部署了 Damselfly 照片管理系统,验证了其在容器化环境下的易用性与稳定性。借助 docker-compose 编排工具,仅需几条命令即可完成服务搭建,并通过挂载本地目录实现配置、缩略图和照片库的持久化管理。系统启动后,通过 Web 界面可高效上传、浏览和搜索海量图像,AI 识别与元数据功能表现流畅。Damselfly 凭借高性能、跨平台支持和非破坏性编辑特性,非常适合作为个人或团队的私有照片管理中心。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册