Docker 致命:无法写入锁定文件“postmaster.pid”:设备上没有剩余空间
Posted
技术标签:
【中文标题】Docker 致命:无法写入锁定文件“postmaster.pid”:设备上没有剩余空间【英文标题】:Docker FATAL: could not write lock file "postmaster.pid": No space left on device 【发布时间】:2017-09-07 08:42:56 【问题描述】:postgres:9.5
我尝试重新启动,
docker-compose build --no-cache
删除镜像和容器并重新构建
我有很多项目,任何人都开始,保持相同的配置...... Mac osx 塞拉利昂
显然容器没有被很好地删除,我尝试了这个,重建后工作正常。
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)
docker-compose.yml
version: '2'
services:
web:
build: .
image: imagename
command: python manage.py runserver 0.0.0.0:8000
ports:
- "3000:3000"
- "8000:8000"
volumes:
- .:/code
depends_on:
- migration
- redis
- db
redis:
image: redis:3.2.3
db:
image: postgres:9.5
volumes:
- .:/tmp/data/
npm:
image: imagename
command: npm install
volumes:
- .:/code
migration:
image: imagename
command: python manage.py migrate --noinput
volumes:
- .:/code
depends_on:
- db
Dockerfile:
FROM python:3.5.2
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
RUN mkdir /code
WORKDIR /code
RUN easy_install -U pip
ADD requirements.txt /code/requirements.txt
RUN pip install -r requirements.txt`
【问题讨论】:
听起来卷处于只读模式。您可以添加 docker-compose.yml 内容和设置此环境的任何其他脚本吗? 当然,现在就在这里 安装/tmp/data
的驱动器上肯定有空间吗? (并且运行 Docker 守护进程的用户是否具有写入权限?)
您从哪个目录运行docker-compose
命令,您在/user、/User(情况很重要)、/projects 等中吗?
为什么需要设置 /tmp/data/ 卷?通过分析Dockerfile for Postgres:9.5 link,您会看到它定义了一个托管卷/var/lib/postgresql/data。注意:卷 .:/tmp/data/ 意味着您声明了一个绑定挂载卷 - 将主机上的位置映射到容器上的位置,而不是托管卷。这可能还需要设置 USER 映射。
【参考方案1】:
如果您没有任何关键数据,您可以删除 docker 卷。
docker volume ls
docker volume rm your_volume
【讨论】:
【参考方案2】:如果您从 Google 来到这里并发现多个容器都在抱怨磁盘空间问题,则问题可能是您的本地 Docker 安装已达到其磁盘映像大小的最大值。这可以在 Docker for Mac 中进行配置。 Here are the instructions to change that disk image size。
【讨论】:
这真的很有帮助。我用完 88GB 并允许 120GB,但仍然出现此错误。删除一些未使用的卷和映像,增加允许的空间后,它恢复正常。【参考方案3】:您可以通过docker volume prune
删除所有未使用的本地卷。
【讨论】:
【参考方案4】:我的情况,转到 docker Dashboard -> 设置并创建 Disk Image size
然后重新启动
【讨论】:
以上是关于Docker 致命:无法写入锁定文件“postmaster.pid”:设备上没有剩余空间的主要内容,如果未能解决你的问题,请参考以下文章
visual C++ 6.0 问题:链接:致命错误LNK1104:无法打开文件“调试/ d.exe“ 执行link.exe时出错。