前言:
最近90块钱的阿里云实在是太香了,正好买来做试验环境,索性备了个案把原来香港的轻量云内容转过来。
从最早的wdcp到vestacp到后面用dokcer,wordpress这东西可以说每次搬都很折腾。docker虽然减少了部署成本, 但容器多起来,还是不够清晰。
之前用脚本挂在web dav到坚果云, 每次还要迁移脚本任务, 除了第一次跑没跑也不知(之前备份基本靠阿里云快照,现在ECS是收费的且不能按需恢复)。
wp docker 也顺便升级到了php 8.0版本, 3年没升级了,主题还有很多报错17年就不维护了换了8.0下下来自己改了改升级了下。
1.Portainer docker swarm 管理
商业软件生产也使用了这个面板,注意agent api加入是不需要秘钥的,会自动处理,安全方面无需担心。
选用原因:
- 配置和数据文件导出的整体性(重要)
- Agent支持一个面板管理多个环境
- 商业软件 稳定 开源 CE版本够用
- 操作面板的易用性(对于小的团队,减少了大量的学习成本), RABC需要商业版本。
- docker standalone+ docker swarm + k8s 全支持
下图是搭建的使用效果, agent只需要启动一个容器就行,这里演示的agent 环境armbain 家庭nas+homeassistant (被老娘拉闸断电了),stack和k8s面板差不多支持在线编辑和git比较方便。
基本命令能实现的UI都有实现完成度是非常好的,但是注意目录映射以后基本要在portainer目录里展开,这也保证了配置目录的清晰,编辑的配置文件会以数字id作为目录映射列如portainer_data/compose/1
实测有些小问题比如 env_file必须以portainer_data/compose/1为基准目录展开否则会报找不到文件,这个问题社区还在讨论。
强烈建议以portainer_data目录为其他容器映射目录, 可以享受portainer的一键导出, 而且目录结构会很清晰, 以后脱离portainer也可以以原生的形式简单起动起来。
2 . Duplicati +Alist + 阿里云盘备份
Duplicati选用原因:
-
-
- 开源且在维护中
- docker启动 低学习成本UI界面配置简单不折腾(重点)
- 少有的linux中集成 ssh 和 webdav的(重点), 其他北方软件基本着重于加密和打包
- 加密备份+按需目录恢复
-
使用思路: alist挂在阿里云, Duplicati选择备份目录(portainer目录) 配置目标位置 alist dav,简单无脑反正容量够也不用导出sql了直接备份idb。
我这机器比较烂, alist度盘上传进程设置多了直接IO拉满机器干翻了,碰到这种情况调整下alist。
docker-compose 如下
version: "3.9" x-traefic-ignore: &traefic-ignore labels: - "traefik.enable=false" services: duplicati: image: linuxserver/duplicati:latest container_name: duplicati environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai volumes: - /root/docker/appdata/config:/config - /root/docker/backups:/backups - /root/docker:/source deploy: <<: *traefic-ignore placement: constraints: - node.role == manager restart: unless-stopped alist: restart: always volumes: - '/opt/alist:/opt/alist/data' environment: - PUID=0 - PGID=0 - UMASK=022 - TZ=UTC container_name: alist image: xhofe/alist:latest deploy: <<: *traefic-ignore