我的ec2实例附带了两个卷,一个是/dev/sdb 1,它是根卷,它是8GB,而另一个卷/dev/sdb是500 Gb。在运行sudo fdisk -l时,我可以看到这两个卷。我有一个django服务器运行在这个ec2实例上的docker实例中,当我将一些数据上传到服务器停靠程序"I/O错误,设备上没有空间“时。我怎样才能解决这个问题?
编辑
以下是我的船坞-Compose.yml
# Copyright (C) 2018-2020 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
version: "2.3"
services:
cvat_db:
container_name: cvat_db
image: postgres:10-alpine
networks:
default:
aliases:
- db
restart: always
environment:
POSTGRES_USER: root
POSTGRES_DB: cvat
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- cvat_db:/var/lib/postgresql/data
cvat_redis:
container_name: cvat_redis
image: redis:4.0-alpine
networks:
default:
aliases:
- redis
restart: always
cvat:
container_name: cvat
image: cvat
restart: always
depends_on:
- cvat_redis
- cvat_db
build:
context: .
args:
http_proxy:
https_proxy:
no_proxy:
socks_proxy:
TF_ANNOTATION: "no"
AUTO_SEGMENTATION: "no"
USER: "django"
DJANGO_CONFIGURATION: "production"
TZ: "Etc/UTC"
OPENVINO_TOOLKIT: "no"
environment:
DJANGO_MODWSGI_EXTRA_ARGS: ""
ALLOWED_HOSTS: '*'
volumes:
- cvat_data:/home/django/data
- cvat_keys:/home/django/keys
- cvat_logs:/home/django/logs
- cvat_models:/home/django/models
cvat_ui:
container_name: cvat_ui
restart: always
build:
context: .
args:
http_proxy:
https_proxy:
no_proxy:
socks_proxy:
dockerfile: Dockerfile.ui
networks:
default:
aliases:
- ui
depends_on:
- cvat
cvat_proxy:
container_name: cvat_proxy
image: nginx:stable-alpine
restart: always
depends_on:
- cvat
- cvat_ui
environment:
CVAT_HOST: ""
ALLOWED_HOSTS: "*"
ports:
- "8080:80"
volumes:
- ./cvat_proxy/nginx.conf:/etc/nginx/nginx.conf:ro
- ./cvat_proxy/conf.d/cvat.conf.template:/etc/nginx/conf.d/cvat.conf.template:ro
command: /bin/sh -c "envsubst '$$CVAT_HOST' < /etc/nginx/conf.d/cvat.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
volumes:
cvat_db:
cvat_data:
cvat_keys:
cvat_logs:
cvat_models:发布于 2020-04-21 15:23:34
有几种可能性。查看本文,看看它是否有用:https://www.maketecheasier.com/fix-linux-no-space-left-on-device-error/
上面写着
进程保留的
删除文件
偶尔,一个文件会被删除,但是进程仍然在使用它。当进程仍在运行时,Linux不会释放与文件相关联的存储。您只需要找到进程并重新启动它。
没有足够的Inodes
文件系统上有一组名为“inodes”的元数据。Inode跟踪有关文件的信息。许多文件系统都有固定数量的inode,因此很有可能在不填充文件系统本身的情况下填充inode的最大分配。您可以使用df检查。
数独df -i /
将使用的节点与总节点进行比较。如果没有更多可用的,不幸的是,你不能得到更多。删除一些无用的或过时的文件以清除inode。
坏代码阻止
最后一个常见的问题是坏的文件系统块。文件系统变坏了,硬盘也死了。除非另有标记,否则您的操作系统很可能会认为这些块是可用的。查找和标记这些块的最佳方法是使用带有-cc标志的fsck。请记住,您不能从正在测试的同一个文件系统中使用fsck。
您还可能希望在Linux交换中发布这个问题,比如https://unix.stackexchange.com/或https://serverfault.com/。
发布于 2020-04-21 16:32:26
我认为这与您的机器无关,它与您所包含的体积大小限制有关,因为您可以限制这些。您可以使用docker container inspect <container-Id>检查容器并检查与其关联的卷吗?您还可以使用docker volume inspect <volume-Id>命令检查每个卷的Id。
经过一些研究,我更有信心这些可能是问题--检查这个线程--这与https://github.com/moby/moby/issues/5151有一点关系
https://stackoverflow.com/questions/61346045
复制相似问题