求教一个比 docker compser 复杂一点,又比 k3s 简单的部署方案,主要痛点是更新

2023-09-25 17:22:12 +08:00
 fy
如题,挂掉自动拉起应该能通过 restart: always 解决,或者设置一个次数限制
容器更新有啥好方案吗。目前想法是构建好推送 S3 ,然后那边写个脚本轮询+重新 docker composer up -d ,是不是太粗糙了

这类应用场景是 homelab 、内网部署、低性能服务器这些
2324 次点击
所在节点    问与答
23 条回复
lerry
2023-09-25 17:24:15 +08:00
watchtower 可以自动更新镜像和容器
sunny352787
2023-09-25 17:25:30 +08:00
内网测试环境?让 CI 触发执行 docker-compose up -d --force-recreate --build XXX
Trim21
2023-09-25 17:29:18 +08:00
docker compose 支持重启次数限制。

https://docs.docker.com/compose/compose-file/compose-file-v3/#deploy

楼上说的 watchtower 不支持比较新的 docker compose 。
Trim21
2023-09-25 17:31:43 +08:00
我是直接在 crontab 里面定时 docker compose up -d --pull=always ...
fy
2023-09-25 17:34:12 +08:00
@Trim21 是说 docker compose 不能太新 还是配置文件不能太新呢?

应该是这个吧: https://containrrr.dev/watchtower/
我配置文件是 3.7 应该能用?请教有没有坑之类呢
fy
2023-09-25 17:34:37 +08:00
@Trim21 啊这 大力出奇迹!
fy
2023-09-25 17:36:15 +08:00
那如果我不想建立 harbour ,有两个服务直接自己构建镜像推到 s3 ,这种情况 pull 就不行了吧?
Trim21
2023-09-25 17:43:58 +08:00
@fy #5 的 docker compose 本身不能太新。配置文件的版本倒是次要的。

好像是判断容器是否需要重启的逻辑跟 docker compose 启动容器的方式不太兼容。

https://github.com/containrrr/watchtower/issues/1019
zzl22100048
2023-09-25 17:53:42 +08:00
我怎么感觉 k3s 比 docker compose 简单多了,特别是涉及服务更新。我这 1c2g 跑 k3s 也没问题啊
fy
2023-09-25 17:53:48 +08:00
@Trim21 啊这 那乍一看起来好像没有特别的好处,似乎只是能记一下日志,提供一点 hook 、metric 之类的。
我搜了一下看到好像有 s3 bucket 当做 docker registry 的用法,那我也这样暴力 pull 大概也行。。。?
如果上游没更新是不会重建和重启服务的吧
fsdrw08
2023-09-25 17:54:29 +08:00
podman 支持通过 k8s 格式的描述文件进行部署,可以考虑用 podman + k8s 描述文件,在描述文件的 label 里面加上 io.containers.autoupdate: registry 配置自动更新
Trim21
2023-09-25 17:55:37 +08:00
@fy #10 我几乎不用 build 参数,不太清除 build 相关参数的行为,但是如果上游 tag 对应的 sha 没变化的时候不会 pull 并重启。
fy
2023-09-25 17:56:16 +08:00
@zzl22100048 首先一个原因是我写了 compose 配置……其次是我看老贴说 k3s 直接吃 1g 内存,在性能较差机器上吃 30%的 cpu ,然后节点备份、自动扩容、网关那些功能我好像也不需要,所以想着简单点
fy
2023-09-25 18:05:30 +08:00
@fsdrw08 请教下,这个新的容器工具有什么亮点吗。
感觉过去两年,现在好像都在对 docker 喊打喊杀也不知道啥情况
liuzhaowei55
2023-09-25 18:22:40 +08:00
docker swarm + portainer
paranoiagu
2023-09-25 18:27:07 +08:00
单机跑,不涉及虚拟网络。docker compose 就很好。
多机群集,需要虚拟网络,那么上 swarm 、k8s......
cdlnls
2023-09-25 18:40:16 +08:00
docker swarm ,就是比 docker-compose.yml 多一个 deploy ,可以配置滚动更新,还有 docker swarm 支持多节点。
momocraft
2023-09-25 18:56:29 +08:00
docker-compose 可以远程更新的 https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/
具体原理是从当前机器通过 ssh 控制对面 host (DOCKER_HOST) 的 dockerd

如果需要更好状态管理可以上简单的 terraform ,也能远程管理容器

这两种做法都不需要另外跑程序
ospider
2023-09-25 19:05:08 +08:00
k3s 还不够简单么……另外,可以考虑一下 ansible ,完全可以替代 docker-compose
kid1412621
2023-09-25 22:16:05 +08:00
@cdlnls emmm 看来 swarm 还是并一无是处啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/977034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX