增加容器优化操作系统中docker可以访问的磁盘大小。

我试图运行一个简单的每日批处理脚本,可以运行几个小时,之后它会发送它生成的数据并关闭实例。为了达到这个目的,我将以下内容放入了 user-data:

users:
  - name: cloudservice
    uid: 2000

runcmd:
  - sudo HOME=/home/root docker-credential-gcr configure-docker
  - |
    sudo HOME=/home/root docker run \
    --rm -u 2000 --name={service_name} {image_name} {command}
  - shutdown

final_message: "machine took $UPTIME seconds to start"

我正在使用python脚本创建实例,以生成API的配置,就像这样。

def build_machine_configuration(
    compute, name: str, project: str, zone: str, image: str
) -> Dict:

    image_response = (
        compute.images()
        .getFromFamily(project="cos-cloud", family="cos-stable")
        .execute()
    )
    source_disk_image = image_response["selfLink"]

    machine_type = f"zones/{zone}/machineTypes/n1-standard-1"

    # returns the cloud init from above
    cloud_config = build_cloud_config(image)

    config = {
        "name": f"{name}",
        "machineType": machine_type,
        # Specify the boot disk and the image to use as a source.
        "disks": [
            {
                "type": "PERSISTENT",
                "boot": True,
                "autoDelete": True,
                "initializeParams": {"sourceImage": source_disk_image},
            }
        ],
        # Specify a network interface with NAT to access the public
        # internet.
        "networkInterfaces": [
            {
                "network": "global/networks/default",
                "accessConfigs": [{"type": "ONE_TO_ONE_NAT", "name": "External NAT"}],
            }
        ],
        # Allow the instance to access cloud storage and logging.
        "serviceAccounts": [
            {
                "email": "default",
                "scopes": [
                    "https://www.googleapis.com/auth/devstorage.read_write",
                    "https://www.googleapis.com/auth/logging.write",
                    "https://www.googleapis.com/auth/datastore",
                    "https://www.googleapis.com/auth/bigquery",
                ],
            }
        ],
        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        "metadata": {
            "items": [
                {
                    # Startup script is automatically executed by the
                    # instance upon startup.
                    "key": "user-data",
                    "value": cloud_config,
                },
                {"key": "google-monitoring-enabled", "value": True},
            ]
        },
    }
    return config

但是,我在docker引擎中的磁盘空间已经用完了。

有什么办法可以增加docker服务的可用空间?

解决方案:

Docker引擎使用实例的磁盘空间。所以如果容器没有空间就是因为Instance的磁盘满了。

首先,你可以尝试创建一个磁盘更大的Instance。文档 说。

disks[].initializeParams.diskSizeGb string (int64 format)

指定磁盘的大小,单位为2GB。大小必须至少为10GB。如果您指定了启动盘所需的sourceImage,则默认大小为sourceImage的大小。如果没有指定sourceImage,默认的磁盘大小是500 GB。

你可以通过添加字段 diskSizeGb 的部署中。

"disks": [
    {
      [...]
      "initializeParams": {
        "diskSizeGb": 50,
        [...]

你还可以尝试在实例中执行以下命令 看看磁盘是否已满,哪个分区已满。

$ df -h

同样的,你也可以执行下面的命令来查看… Docker引擎的磁盘使用情况:

$ docker system df

客户端和守护程序API必须至少是1.25才能使用这个命令。在客户端使用docker version命令来检查你的客户端和守护程序API的版本。

如果你想知道更多的信息,你可以使用标志-v。

$ docker system df -v

给TA打赏
共{{data.count}}人
人已打赏
未分类

在Node.js中,如何打破一个函数内的无限循环?

2022-9-8 23:50:20

未分类

Camunda。答复提交后无法创建会话

2022-9-8 23:50:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索