【问题标题】:Docker removing Dangling images command not working in CoreOS systemd unit fileDocker删除悬空图像命令在CoreOS systemd单元文件中不起作用
【发布时间】:2017-10-14 05:14:34
【问题描述】:

我想在我的 CoreOS 实例中定期执行 Docker 悬空图像删除命令作为 Cron 作业。但是由于某种原因,尽管 systemd 单元计时器已成功执行,但悬空的 docker 图像不会删除。但是单独运行该命令会成功删除悬空的 docker 镜像。

我的服务文件 (remove-docker-dangling.service)

[Unit]
Description=Removing Docker Dangling Images Cron Service
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
ExecStart=/bin/docker rmi $(docker images --quiet --filter "dangling=true")

我的计时器文件 (remove-docker-dangling.timer)

[Unit]
Description=Run remove-docker-dangling.service every 30 minutes

[Timer]
OnCalendar=*:0/30

【问题讨论】:

  • 1) 这属于 ServerFault 或 SuperUser,而不是 StackOverflow。很高兴下次知道。
  • 2) 您是否尝试过收集journalctl -xesystemctl status remove-docker-dangling 的输出?
  • @DerekBrown systemctl status 显示其健康且活跃!

标签: docker systemd coreos


【解决方案1】:

我认为罪魁祸首是systemd 对shell 样式命令解析的支持有限(source)。要执行$(...) 部分,您需要在shell 中执行命令:

ExecStart=/bin/sh -c "/bin/docker rmi $(docker images --quiet --filter 'dangling=true')"

【讨论】:

  • 你的回答解决了我的问题!也感谢来源。
猜你喜欢
  • 2018-06-06
  • 2021-11-19
  • 2022-10-24
  • 2022-01-04
  • 1970-01-01
  • 2020-05-22
  • 2022-11-07
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多