繁体   English   中英

如何防止所有 docker 容器在启动时自动重启?

[英]How to prevent all docker containers from automatically restarting on boot?

我经常在我的笔记本电脑上部署 docker 个容器进行开发,然后关闭我的计算机而忘记关闭 docker 个容器。 令我惊讶的是,多次重启后这些容器仍在运行。

我如何更改此行为,以便任何 docker 容器,无论容器是否附加了重启策略,都不会在下次启动时重新启动?

我正在运行 Linux 和 docker 通过 systemd 运行。

您可以通过创建依赖于 docker 的 oneshot systemd 服务(通过After=设置顺序)来执行此操作,然后在关闭时运行脚本以停止并删除所有容器。

Systemd 服务(即放在/etc/systemd/system/shutdown-docker-containers.service中):

[Unit]
Description="Service to prevent restarting docker containers on next bootup"
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/opt/docker-container-shutdown.sh

[Install]
WantedBy=docker.service

用于删除 docker 容器的脚本 ( /opt/docker-container-shutdown.sh ):

#!/usr/bin/env bash

containers=$(docker ps -q)

[ -z "$containers" ] || {
    docker stop $containers
    docker rm $containers
}

最后,使脚本可执行,重新加载 systemd,并启用服务:

sudo chmod +x /opt/docker-container-shutdown.sh
sudo systemctl daemon-reload
sudo systemctl enable --now docker-container-shutdown.sh

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM