如何在使用 systemd 退出 docker-machine 之前 运行 docker 命令?

How to run the docker commands before exiting docker-machine with systemd?

我 运行 我的容器在系统启动时使用此 systemd 配置:

[Unit]
After=docker.service
Requires=docker.service

[Service]
User=sterzhakov
Group=sterzhakov
ExecStart=/home/sterzhakov/conatiners-start.sh
ExecStop=/home/sterzhakov/containers-stop.sh
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

一切顺利开始

但是在重新启动时我需要 运行 另一个脚本来清理我的 docker-machine

中的卷和容器

但这并没有发生,这里是这个脚本的日志:

2021-02-07 02:35:09 | start VTB stop
Error checking TLS connection: Host is not running
Removing network docker_default
Network docker_default not found.
Removing network docker_default
Network docker_default not found

如何正确运行重启docker机器里面的脚本|关机?

这很难,因为您不能保证完全关闭。机器有时会死机和崩溃。你最好在启动时清理。

您可以创建另一个 systemd-service 来清理并从启动容器的服务中放置对它的依赖。

或者,简单地在您的容器上放置一个 'restart always' 策略可能会更好,并且 docker 将在系统重新启动时自动为您重新启动它们。