1
lerry 2023-09-25 17:24:15 +08:00 1
watchtower 可以自动更新镜像和容器
|
2
sunny352787 2023-09-25 17:25:30 +08:00 1
内网测试环境?让 CI 触发执行 docker-compose up -d --force-recreate --build XXX
|
3
Trim21 2023-09-25 17:29:18 +08:00 1
docker compose 支持重启次数限制。
https://docs.docker.com/compose/compose-file/compose-file-v3/#deploy 楼上说的 watchtower 不支持比较新的 docker compose 。 |
4
Trim21 2023-09-25 17:31:43 +08:00
我是直接在 crontab 里面定时 docker compose up -d --pull=always ...
|
5
fy OP @Trim21 是说 docker compose 不能太新 还是配置文件不能太新呢?
应该是这个吧: https://containrrr.dev/watchtower/ 我配置文件是 3.7 应该能用?请教有没有坑之类呢 |
7
fy OP 那如果我不想建立 harbour ,有两个服务直接自己构建镜像推到 s3 ,这种情况 pull 就不行了吧?
|
8
Trim21 2023-09-25 17:43:58 +08:00 1
@fy #5 的 docker compose 本身不能太新。配置文件的版本倒是次要的。
好像是判断容器是否需要重启的逻辑跟 docker compose 启动容器的方式不太兼容。 https://github.com/containrrr/watchtower/issues/1019 |
9
zzl22100048 2023-09-25 17:53:42 +08:00
我怎么感觉 k3s 比 docker compose 简单多了,特别是涉及服务更新。我这 1c2g 跑 k3s 也没问题啊
|
10
fy OP @Trim21 啊这 那乍一看起来好像没有特别的好处,似乎只是能记一下日志,提供一点 hook 、metric 之类的。
我搜了一下看到好像有 s3 bucket 当做 docker registry 的用法,那我也这样暴力 pull 大概也行。。。? 如果上游没更新是不会重建和重启服务的吧 |
11
fsdrw08 2023-09-25 17:54:29 +08:00 via Android 1
podman 支持通过 k8s 格式的描述文件进行部署,可以考虑用 podman + k8s 描述文件,在描述文件的 label 里面加上 io.containers.autoupdate: registry 配置自动更新
|
12
Trim21 2023-09-25 17:55:37 +08:00
@fy #10 我几乎不用 build 参数,不太清除 build 相关参数的行为,但是如果上游 tag 对应的 sha 没变化的时候不会 pull 并重启。
|
13
fy OP @zzl22100048 首先一个原因是我写了 compose 配置……其次是我看老贴说 k3s 直接吃 1g 内存,在性能较差机器上吃 30%的 cpu ,然后节点备份、自动扩容、网关那些功能我好像也不需要,所以想着简单点
|
15
liuzhaowei55 2023-09-25 18:22:40 +08:00 via Android
docker swarm + portainer
|
16
paranoiagu 2023-09-25 18:27:07 +08:00 via Android
单机跑,不涉及虚拟网络。docker compose 就很好。
多机群集,需要虚拟网络,那么上 swarm 、k8s...... |
17
cdlnls 2023-09-25 18:40:16 +08:00 1
docker swarm ,就是比 docker-compose.yml 多一个 deploy ,可以配置滚动更新,还有 docker swarm 支持多节点。
|
18
momocraft 2023-09-25 18:56:29 +08:00 1
docker-compose 可以远程更新的 https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/
具体原理是从当前机器通过 ssh 控制对面 host (DOCKER_HOST) 的 dockerd 如果需要更好状态管理可以上简单的 terraform ,也能远程管理容器 这两种做法都不需要另外跑程序 |
19
ospider 2023-09-25 19:05:08 +08:00
k3s 还不够简单么……另外,可以考虑一下 ansible ,完全可以替代 docker-compose
|
20
kid1412621 2023-09-25 22:16:05 +08:00 via iPhone
@cdlnls emmm 看来 swarm 还是并一无是处啊
|
21
ETiV 2023-09-25 23:04:28 +08:00 via iPhone
自己单台就别整那么麻烦了
docker 的 image 就当代码的运行时,你自己的代码 mount 进去跑 |
22
dislazy2023 2023-09-26 11:48:30 +08:00
k3s 主要是占用磁盘比较多,需要起一些不必要的节点
|
23
fsdrw08 2023-09-27 08:08:02 +08:00 via Android
@fy podman 对比 docker 的优势有 2 点
1 ,对 rootless 支持很好,rootless 最大的好处是可以把容器所有依赖的组件都放在用户级别的目录下,例如 overlay 的文件层,volume ,启动容器对应的 systemd 服务,在 rootless 模式下这些都放在用户目录下,最终可以做到计算与存储分离,我现在的做法是创建一个专用于运行 podman 容器的用户,用户目录放在数据盘里,系统装好 podman 并配置了 linger ,开机挂载数据盘就能运行容器 2 ,podman 支持加载 k8s 文件,支持 pod, deployment, statefulset, configmap, secret, PVC 等资源描述,可以通过 k8s 描述文件配置容器,这里的玩法就多了,例如通过 helm chart 部署 |