【问题标题】:Google GCP container-optimized OS - no space left during docker-compose buildGoogle GCP 容器优化操作系统 - 在 docker-compose 构建期间没有剩余空间
【发布时间】:2021-09-25 04:30:44
【问题描述】:
  1. 我用 docker 删除了所有内容
  • 所有图像(悬空和非悬空)
  • 所有卷
  • 我做了系统修剪
  • 没有容器运行

docker ps -a

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

docker images -a

REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

docker system df

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          0         0         0B        0B
Containers      0         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B

我正在做docker-compose build php,这很简单:

FROM php:7.2-fpm


RUN apt-get update && apt-get install -y libpq-dev libxml2-dev zip unzip mc git supervisor
#    && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
#    && docker-php-ext-install pdo pdo_pgsql pgsql

RUN docker-php-ext-install pdo pdo_pgsql pgsql pcntl soap mbstring exif

#RUN docker-php-ext-configure pcntl --enable-pcntl

RUN pecl install xdebug-2.6.0 && docker-php-ext-enable xdebug
WORKDIR /var/www/html

显然之前一切正常,我不得不重建图像。我有可用空间: df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       2.0G  1.2G  819M  59% /
devtmpfs        7.9G     0  7.9G   0% /dev
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           7.9G  360K  7.9G   1% /run
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs           7.9G  112K  7.9G   1% /etc/machine-id
tmpfs           7.9G     0  7.9G   0% /tmp
tmpfs           256K     0  256K   0% /mnt/disks
overlayfs       7.9G  112K  7.9G   1% /etc
/dev/sda8        12M   24K   12M   1% /usr/share/oem
/dev/sda1        16G  8.4G  7.4G  54% /mnt/stateful_partition
tmpfs           1.0M  116K  908K  12% /var/lib/cloud

但第一个问题,/cache 安装在 google gcp 上的位置在哪里?我怎样才能清除它?因为没有这样的目录。

cd /cache

-bash: cd: /cache: No such file or directory

【问题讨论】:

    标签: docker google-cloud-platform docker-compose


    【解决方案1】:

    容器优化操作系统旨在用于运行容器化工作负载,而不是用于开发。

    如果您需要在计算实例中运行自定义容器之前构建它们,容器优化操作系统 (CoreOS) 并不是最灵活或最舒适的选择。

    • 使用您觉得可以轻松使用的任何操作系统。
    • 将 docker 映像发布到容器注册表(有一个 Google 容器注册表)。
    • 运行容器内部容器优化操作系统(它们在 GCP 中具有最快的启动时间,通常

    另一种选择是使用 Google 的 Cloud Build 服务为您构建和发布容器(请参阅 https://cloud.google.com/build/docs/building/build-containers),然后使用 Container-optimizerd OS 运行容器。

    【讨论】:

    • 嗯,这是一个产品,但我不得不重建我的 php 容器。第二:代码在 git 存储库中,而不是在映像中,所以我想将我的容器放入注册表不是一种选择。但无论如何,此时我该如何解决我的问题?我从头开始做了一台新机器,它可以运行,但这台有问题
    • 我在里面运行我的容器——我的意思是,我有我的 docker-compose 文件来管理我的容器。它们中的大多数只是干净的 docker 图像,但是我必须对 php 进行一些修改,所以我有一个 dockerfile 。有没有办法清理 /cache 以重新运行构建,或者我必须创建一台新机器?
    【解决方案2】:

    看起来 8GB 的​​可用磁盘空间太少,无法运行构建。我释放了一些空间 - 这很有帮助。

    【讨论】:

      【解决方案3】:

      我认为您的服务器没有足够的空间来存储 docker build 生成的文件。

      要验证您的服务器中是否还有足够的空间,您可以尝试运行以下命令来显示您的服务器可用空间。

      df -h

      使用磁盘使用命令并键入以下命令。您可能会看到最高的文件夹将位于列表的顶部。

      sudo du -d1 -h /var/lib/docker |排序-hr

      确保在您的服务器上运行以下命令之前停止所有正在运行的 docker 容器。

      docker image prune --all

      docker image prune -a

      此命令将删除所有未使用的图像和所有悬空图像。

      使用 $ df -h 命令仔细检查您的存储空间,并检查您是否已经有足够的空间。

      运行该命令后,您将再次回收新的存储空间。你现在可以开始你的

      docker-compose up -d --build

      关于您关于缓存的问题,缓存未安装在 Google GCP 上。我们需要为特定应用程序的缓存存储创建路径。

      本地 SSD 仅适用于缓存、处理空间或低价值数据等临时存储。 参考文档Formatting and mounting a local SSD device

      【讨论】:

        猜你喜欢
        • 2021-06-10
        • 1970-01-01
        • 2021-08-02
        • 2019-05-11
        • 2022-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-13
        相关资源
        最近更新 更多