# CapRover 如何停止服务，并进行硬盘扩容/维护

- Link: https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/
- Published: 2024-03-27T00:35:31+08:00
- Author: 白宦成

文章目录

 [Toggle](https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/#)

 * [1. 获取服务名称](https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/#1_%e8%8e%b7%e5%8f%96%e6%9c%8d%e5%8a%a1%e5%90%8d%e7%a7%b0)
 * [2. 拼接所需的命令](https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/#2_%e6%8b%bc%e6%8e%a5%e6%89%80%e9%9c%80%e7%9a%84%e5%91%bd%e4%bb%a4)
 * [3. 执行命令，扩容硬盘](https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/#3_%e6%89%a7%e8%a1%8c%e5%91%bd%e4%bb%a4%ef%bc%8c%e6%89%a9%e5%ae%b9%e7%a1%ac%e7%9b%98)

在一开始使用 CapRover 时，我使用的是一个 10 GB 的数据盘，但在部署了诸多应用后，10GB
的数据盘已经无法满足我的需求，于是我就对其进行了扩容，扩容至 20GB。在完成扩容 & 
重启后，仍需要执行 Linux 的扩容命令 resize2fs 来扩容硬盘。

但由于 CapRover 中运行的服务跑在这个数据盘上，并没有办法直接在这个数据盘上进行扩
容（进程会持续读取文件），因此，需要先将 CapRover 上的服务暂停，暂停后进行扩容，
并重新启动服务。

CapRover 底层是使用 Docker Swarm + Nginx 来进行的，因此，我们只需要使用 Docker Swarm
的命令，来停止服务运行即可。

## 1. 获取服务名称

首先，你需要先获取到当前所有在跑的服务，以便于稍后去暂停。执行 `docker service ls`
来获取到具体的服务名称。

![](https://files.ixiqin.com/2024/03/23062235/d2b5ca33bd970f64a6301fa75ae2eb22-13-
1024x239.png)

## 2. 拼接所需的命令

在 Docker Swarm 当中，并没有直接的 Start or Stop 概念，而是通过将 Replica 设置为
0 来实现关闭的能力。这个命令可以通过 `docker service scale 服务名=服务数` 来实现。
因此，你需要将对应的服务设置为 0 来解决这个问题。你可以先行把开启和停止的命令拼接
好，从而实现快速的启动和关闭，尽可能的减少宕机时间。

> 如果是有多个服务，可以直接拼接在后面，从而实现一次关闭 / 开启多个服务。

    ```bash
    # docker service scale service_name=1 service_name_2=0
    # 停止命令
    docker service scale srv-captain--blog-ixiqin-com=0 srv-captain--mysql-8-production-db=0 srv-captain--pgsql-16-production=0 srv-captain--redis-server-production=0
    # 启动命令
    docker service scale srv-captain--blog-ixiqin-com=1 srv-captain--mysql-8-production-db=1 srv-captain--pgsql-16-production=1 srv-captain--redis-server-production=1
    Code language: Bash (bash)
    ```

## 3. 执行命令，扩容硬盘

你可以先执行停止命令，然后执行扩容命令。完成扩容后，重新启动，即可完成整体的扩容。

## Comments

### By: pdream

- Link: https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/#comment-10076
- Published: 2024-12-30T11:25:39+08:00

终于找到怎么临时关闭服务的方法了 ，多谢!

### By: 白宦成

- Link: https://www.ixiqin.com/2024/03/27/how-to-stop-service-and-perform-hard-disk/#comment-10078
- Published: 2024-12-30T11:33:02+08:00

有用就好～
