docker设备macOS上没有剩余空间

Nic*_*dez 4 macos containers docker

我正在尝试构建需要复制一些大文件(〜75GB)的docker映像,运行以下命令时出现以下错误:

$ docker build -t my-project .
Run Code Online (Sandbox Code Playgroud)
Step 8/10 : COPY some-large-directory
  failed to copy files: failed to copy directory: Error processing tar file(exit status 1): write /directory: no space left on device
Run Code Online (Sandbox Code Playgroud)

我认为该错误是由容器空间不足引起的(我已经使用docker偏好将docker磁盘映像大小增加到160GB)。如果是这样,如何增加macOS(高塞拉利昂)上的最大容器大小(我读取的默认值为100GB)?

Bra*_*och 57

Docker 对象会随着时间的推移而累积,因此如果大量使用,您最终会耗尽可用存储空间。您可以确认这是docker system df的问题:

docker system df
Run Code Online (Sandbox Code Playgroud)

您可以通过修剪未使用的对象来开始回收一些空间,举几个例子:

# Prune everything
docker system prune

# Only prune images
docker image prune
Run Code Online (Sandbox Code Playgroud)

请务必先阅读修剪未使用的 Docker 对象文档,以确保您了解将要丢弃的内容。

如果你真的不能通过丢弃对象来回收足够的空间,那么你总是可以分配更多的磁盘空间

  • 可能值得一提的是,“docker system prune”会在修剪任何内容之前让您知道它将修剪什么(并且您必须确认)。 (3认同)
  • `docker system df` 还会告诉您本地卷占用了多少空间。`docker volume prune` 将删除所有未使用的本地卷。 (2认同)

Pau*_*NUK 12

有关如何增加空间的说明:

https://forums.docker.com/t/no-space-left-on-device-error/10894/26?u=adnan

请注意,未加标签的图像和旧容器会占用空间。

要删除未标记的图像,请使用:

docker images (以查看问题的严重程度),然后

docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")
Run Code Online (Sandbox Code Playgroud)

对于容器,类似地尝试

docker rm -f $(docker ps -aq) (这将删除所有容器,因此请小心)


Nic*_*dez 5

使用macOS中的Docker首选项增加Docker可用的空间最终解决了该问题。

  • 是的,但是要知道拥有数百张图像非常重要,因此最好在增加码头工人可用的空间之前运行建议的清理命令,因为很有可能不需要它。 (3认同)