本人最近在微服上搭建远程cicd环境,建设并配置 docker 私有仓库时遇到一个关于定时任务管理的问题:
本人使用 docker镜像源管理器
应用作为docker私有仓库,基于微服的网络和自动分配域名的机制,私有仓库创建与使用都很方便。私有仓库随着使用会积累很多无标签的垃圾镜像,因此需要定时垃圾清理,docker 运行的私有仓库(特指 docker镜像源管理器
应用使用的 docker-registry-ui)通过 在容器中执行 /entrypoint.sh garbage-collect /etc/docker/registry/config.yml
进行清理。手工执行清理无问题,但自动清理却难以进行。
docker镜像源管理器
应用通过 lzc-docker 启动,相关权限受到限制,试了几个应用商店中的定时任务管理应用,它们都没有挂载 lzc-docker 的 socket (目前这是不允许的),也没有权限直接在宿主机上执行命令。因此,这些应用能管理,然无法执行。- 微服重启会回退一些用户在宿主机上的改动,直接在微服上配置 crontab 并不能解决问题。通过修改微服启动脚本或者配置用户服务的方式,虽能达到效果,却难以管理。
本人认为,管控 lzc-docker 权限是正确方向、是长久之道,定时任务是常见需求,两者都不可忽视。建议官方建设一个具备较高的权限的定时任务管理应用。