我正在尝试使用docker-compose命令来启动容器。但是,我遇到了“INTERNAL ERROR:cannot create temporary directory!”的错误。我无法拉取、停止、删除或启动容器。请问有人可以建议如何解决此问题吗?
我正在尝试使用docker-compose命令来启动容器。但是,我遇到了“INTERNAL ERROR:cannot create temporary directory!”的错误。我无法拉取、停止、删除或启动容器。请问有人可以建议如何解决此问题吗?
我曾经遇到过同样的问题。后来发现我的磁盘空间已用完。
我只需要通过运行以下命令来清理旧的容器和镜像。我在我的Docker目录下运行了这些命令,之后一切都很好。
删除容器命令:
#!/bin/bash
# Remove all stopped containers
docker rm $(docker ps -a -q)
# Remove all containers
docker rm -f $(docker ps -a -q)
命令选项:
--force
或 -f
:强制删除正在运行的容器(使用 SIGKILL
信号)。
--volumes
或 -v
:删除与容器关联的卷。
--link
或 -l
:删除指定的链接。
删除镜像命令:
# Delete all images
docker rmi $(docker images -q)
命令选项:
--force
或-f
:强制删除镜像。
--no-prune
:不要删除未标记的父级。
系统清理命令:——由Ryan Allan
在评论中提出。
#!/bin/bash
#System Prune
docker system prune
--all
或-a
:不仅删除空悬镜像,还删除所有未使用的镜像。
--filter
:提供过滤器值(例如'label ==') <-- 来自API 1.28+
--force
或-f
:无需确认即可执行操作。
--volumes
:清除存储卷。
基本命令:
docker
:Docker CLI的基本命令。
代码引用自Docker删除所有图像和容器
docker system prune
可以很好地清理所有内容,包括卷和网络。 - Ryan Allen您的Docker缓存所在的磁盘空间已满,可以通过运行命令df -h
进行验证。要解决此问题,您需要清理磁盘空间,例如,您可以清理Docker缓存,请参考下面的小脚本。
此解决方案基于Popeye
的答案,但是强制停止了所有镜像:
#!/bin/bash
# Force stop all containers
docker kill $(docker ps -q)
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)
但正如 Ryan Allen
所说,最好使用 docker system prune
命令来删除所有容器、镜像和网络。因此,脚本的最终形式应该是:
#!/bin/bash
# Force stop all containers
docker kill `docker ps -q`
# Delete all containers, images and networks
docker system prune
享受吧!
要删除Ubuntu上Docker使用的空间,您可以按照以下步骤进行:
sudo docker container prune -f
这里上面的命令将删除所有未关联运行容器的已停止容器。
2. 删除未使用的镜像: 接下来,您可以在终端中运行以下命令来删除任何未使用的镜像:
sudo docker image prune -a -f
上述命令可以包括悬空镜像(即未与任何容器关联的镜像)和未使用的镜像(即未被任何容器使用的镜像)。
sudo docker volume prune -f
这个命令将删除所有未使用的卷,
通过运行这些命令,您应该能够释放Ubuntu上Docker使用的一些空间。
对于在虚拟机内使用docker的人来说,可能会无意中断开存储虚拟机镜像的驱动器连接。就像我的情况一样。如果发生这种情况,最好停止虚拟机,确保驱动器已连接,然后重新启动。