如何重启 Docker

在本文中,您将学习如何使用命令行界面(CLI)重启 Docker 守护进程和 Docker 容器。
在本指南中,我们将使用一台配备 4GB 内存的 BlueVPS NVMe-bKVM 服务器。
我们假设所有命令均以 root 用户身份执行。

应该重启 Docker 守护进程还是 Docker 容器?

在以下情况下需重启 Docker 守护进程:更新了 Docker Engine 或系统内核;Docker CLI 无响应(卡死);您修改了 /etc/docker/daemon.json 中的设置(例如存储驱动程序、日志驱动程序或自定义注册表)。

当容器内的应用程序出现卡死、延迟或崩溃;或您修改了应用程序配置文件,或为容器挂载了卷文件时,请重启 Docker 容器。

重启 Docker 守护进程

要重启 Docker,只需运行一条简单的命令即可:

systemctl restart docker

请注意,systemctl restart docker 默认会重启所有正在运行的容器。您可以通过以下命令进行验证:

docker info | grep "Live Restore"

但如果输出显示 Live Restore Enabled: true(这并非默认设置),则您的容器将保持运行状态。
使用以下命令启用实时恢复(若守护进程重启,容器将保持运行):

tee /etc/docker/daemon.json <<EOF
{
 "live-restore": true
}
EOF
systemctl reload docker

使用以下命令禁用实时恢复(若守护进程重启,容器将重新启动):

tee /etc/docker/daemon.json <<EOF
{
"live-restore": false
}
EOF
systemctl reload docker

重启 Docker 容器

在重启容器之前,应先确定其名称或 ID。运行以下命令可显示当前容器列表:

docker ps

how to restart docker 1

这里可以看到 3 个容器,我们可以使用容器 ID 或名称来重启它们。
例如,让我们先按名称重启 httpd,然后按容器 ID 重启:

docker restart httpd

docker restart 997f9dd62538

从状态信息中可以看出,该容器已重启,并已运行 1 秒

how to restart docker 2

自动重启容器

Docker 提供了容器退出或 Docker 重启时的重启策略,因此您无需使用进程管理器来启动容器。
共有 4 种重启策略:

no - 不重启容器。
on-failure[:max-retries] - 发生故障时重启容器,您可以限制重启次数。
always - 容器停止时总是重启。
unless-stopped - 容器停止时总是重启,除非您手动停止了它。

以下是这四种重启策略的命令示例:

docker run -d --restart=no httpd
docker run -d --restart=on-failure:3 httpd
docker run -d --restart=always httpd
docker run -d --restart=unless-stopped httpd

how-to-restart-docker3

结论

了解何时以及如何重启 Docker 容器,既能节省时间,又能避免不必要的停机:

  • 在进行核心更新和配置更改时,请使用 systemctl restart docker
  • 使用 docker restart <name/ID> 可快速恢复特定的无响应应用程序。
  • 在部署过程中设置适当的重启策略(--restart),以实现容器的自动恢复。

别忘了 查看我们的 VPS 服务器,享受市场上最优惠的价格!

blog