Lỗi Docker: không còn chỗ trống trên thiết bị


329

Tôi đã cài đặt docker trên máy Debian 7 theo cách sau

$ echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ curl -sSL https://get.docker.com/ubuntu/ | sudo sh

Sau đó, khi tôi lần đầu tiên thử tạo một hình ảnh, nó đã thất bại với lỗi sau

 time="2015-06-02T14:26:37-04:00" level=info msg="[8] System error: write /sys/fs/cgroup/docker/01f5670fbee1f6687f58f3a943b1e1bdaec2630197fa4da1b19cc3db7e3d3883/cgroup.procs: no space left on device"

Đây là thông tin docker

Containers: 2
Images: 21
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 25
Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 3.16.0-0.bpo.4-amd64
Operating System: Debian GNU/Linux 7 (wheezy)
CPUs: 2
 Total Memory: 15.7 GiB


WARNING: No memory limit support
 WARNING: No swap limit support

Làm thế nào tôi có thể tăng bộ nhớ? Các cấu hình hệ thống được lưu trữ ở đâu?

Từ những gợi ý của Kal:

Khi tôi loại bỏ tất cả các hình ảnh và các thùng chứa, nó đã giải phóng một số không gian và quá trình xây dựng hình ảnh đã chạy lâu hơn trước khi thất bại với cùng một lỗi. Vì vậy, câu hỏi là, không gian này được đề cập đến và làm thế nào để tôi cấu hình nó?


1
Đôi khi, bạn có thể đạt giới hạn kích thước cho mỗi container , tùy thuộc vào phụ trợ lưu trữ của bạn. Liên kết đó cho thấy cách sửa nó cho devicemapper.
jpaugh

4
Tôi đã có lỗi này khi đĩa của tôi đã hết inodes. Kiểm tradf -ih
Kevin Smyth

@KevinSmyth Cảm ơn rất nhiều vì đã chỉ ra điều này. Tôi thậm chí còn không nhận thức được tầm quan trọng của giới hạn inode trước đó.
yosefrow

Câu trả lời:


337

Tôi đã có cùng một lỗi và giải quyết nó theo cách này:

1. Xóa khối lượng mồ côi trong Docker, bạn có thể sử dụng lệnh âm lượng docker tích hợp. Lệnh tích hợp cũng xóa bất kỳ thư mục nào trong / var / lib / docker / volume không phải là ổ đĩa, vì vậy hãy đảm bảo bạn không đặt bất cứ thứ gì vào đó mà bạn muốn lưu.

Cảnh báo rất cẩn thận với điều này nếu bạn có một số dữ liệu bạn muốn giữ

Dọn dẹp:

$ docker volume rm $(docker volume ls -qf dangling=true)

Các lệnh bổ sung:

Liệt kê khối lượng lơ lửng:

$ docker volume ls -qf dangling=true

Liệt kê tất cả các tập:

$ docker volume ls

2. Cũng xem xét loại bỏ tất cả các hình ảnh không sử dụng.

Trước tiên hãy thoát khỏi <none> hình ảnh (đôi khi chúng được tạo trong khi xây dựng một hình ảnh và nếu vì bất kỳ lý do nào việc xây dựng hình ảnh bị gián đoạn, chúng vẫn ở đó).

đây là một kịch bản hay mà tôi sử dụng để loại bỏ chúng

docker rmi $(docker images | grep '^<none>' | awk '{print $3}')

Sau đó, nếu bạn đang sử dụng Docker Compose để xây dựng hình ảnh cục bộ cho mọi dự án. Bạn sẽ kết thúc với rất nhiều hình ảnh thường được đặt tên như thư mục của bạn (ví dụ nếu thư mục dự án của bạn có tên Hello, bạn sẽ tìm thấy tên hình ảnhHello_blablabla ). vì vậy cũng xem xét loại bỏ tất cả những hình ảnh

bạn có thể chỉnh sửa tập lệnh trên để xóa chúng hoặc xóa chúng bằng tay với

docker rmi {image-name}


23
Chỉ cần một lưu ý: các lệnh awk trên máy Mac phải được bao quanh bằng dấu ngoặc đơn, không phải gấp đôi, nếu không nó sẽ bị bỏ qua.
ndtreviv

2
Tôi đang dùng MAC và nó hoạt động cho tôi !! Nhưng nhờ những lời khuyên.
Mahmoud Zalt

2
Cách kỳ lạ! Nó không làm việc cho tôi. Chỉ cần in ra kết quả tương tự như grep. À Chuyện lạ đã xảy ra.
ndtreviv

3
Tại thời điểm này, bạn có thể sử dụng cùng một bộ lọc cho hình ảnh. docker images -qf dangling=truevà tất nhiên loại bỏ chúng với docker rmi $(docker images -qf dangling=true).
Tyler Jones

3
Tôi gặp lỗi: "docker volume rm" yêu cầu ít nhất 1 đối số.
IgorGanapolsky

325

CẬP NHẬT
Các lệnh dưới đây đã trở thành hack khi Docker trở nên phát triển hơn. Thực tiễn tốt nhất hiện nay là

docker system prune

Điều này sẽ loại bỏ:

- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all dangling images

Như dưới đây, đây là hạt nhân.


Để làm sạch hệ thống của bạn, trước tiên hãy loại bỏ các thùng chứa

$ docker rm $(docker ps -aq)

sau đó xóa hình ảnh

$ docker rmi $(docker images -q)

Tất nhiên đây là hạt nhân và sẽ loại bỏ tất cả các container và tất cả hình ảnh. Bạn có thể loại bỏ chúng cùng một lúc thông qua docker rm #CONTAINER_ID#docker rmi #IMAGE_ID.


2
như Kevin Smyth đã chỉ ra, lỗi này có thể là do bạn hết các nút mà bạn có thể thấy df -ih. Để chẩn đoán phẫu thuật nhiều hơn, nhập ncdusau đó nhấn c để đếm tệp và C sắp xếp theo số lượng tệp để có ước tính sơ bộ về những gì đang sử dụng tất cả các nút của bạn. Nếu vấn đề thực sự là docker, nó sẽ được hiển thị ngay lập tức bởi các thư mục sử dụng nhiều nút nhất.
yosefrow

4
"Docker system prune" làm việc cho tôi.
Donald.McLean

2
Thực sự điều này nên được bình chọn và đưa ra câu trả lời, vì nó là cách tiếp cận chính xác. Môi trường để xây dựng đã bị ô nhiễm và hiện đang bị hack ở đây và có thể khắc phục tạm thời, nhưng cách tiếp cận phù hợp nên làdocker system prune
zhrist

@zhrist Haha Tôi đồng ý
Joshua Cook

Đây là một cách giải quyết và không phải là một giải pháp.
coler-j

70

Kiểm tra xem bạn có không gian trống trên / var không vì đây là nơi Docker lưu trữ các tệp hình ảnh theo mặc định (trong / var / lib / docker).

Trước tiên hãy dọn dẹp bằng cách sử dụng docker ps -ađể liệt kê tất cả các container (bao gồm cả những cái đã dừng) và docker rmloại bỏ chúng; sau đó sử dụng docker imagesđể liệt kê tất cả các hình ảnh bạn đã lưu trữ và docker rmiloại bỏ chúng.

Tiếp theo thay đổi vị trí lưu trữ với tùy chọn -g trên daemon docker hoặc bằng cách chỉnh sửa /etc/default/dockervà thêm -gtùy chọn vào DOCKER_OPTS. -gchỉ định vị trí của "Thời gian chạy Docker" về cơ bản là tất cả những thứ mà Docker tạo ra khi bạn xây dựng hình ảnh và chạy container. Chọn một vị trí có nhiều không gian vì không gian đĩa được sử dụng sẽ có xu hướng tăng theo thời gian. Nếu bạn chỉnh sửa /etc/default/docker, bạn sẽ cần khởi động lại trình nền docker để thay đổi có hiệu lực.

Bây giờ bạn sẽ có thể tạo một hình ảnh mới (hoặc kéo một hình ảnh từ Docker Hub) và bạn sẽ thấy một loạt các tệp được tạo trong thư mục bạn đã chỉ định với tùy chọn -g.


Cảm ơn Kal, tôi không thể tìm thấy tài liệu về DOCKER_OPTS. Tùy chọn -g có nghĩa là gì và nên đặt thành gì? Ngoài ra những thứ dưới docker / aufs / mnt có thể bị xóa không?
user_mda

Này ruby, tôi không nghĩ mình từng tìm thấy một tài liệu thực sự về DOCKER_OPTS, nhưng có những nơi ở đây và trong tài liệu nói về việc chỉnh sửa nó. Gần nhất tôi có thể tìm thấy là ở cuối docs.docker.com/installation/ubuntulinux/ , nơi nó nói về việc chỉnh sửa cài đặt DNS trong DOCKER_OPTS. Các tùy chọn trong DOCKER_OPTS chỉ được truyền cho daemon, vì vậy tham chiếu cho đó là docs.docker.com/reference/commandline/cli/#daemon . -g đặt vị trí cơ sở của "Thời gian chạy Docker"
Kal

Ngoài ra những thứ dưới docker / aufs / mnt có thể bị xóa không?
user_mda

Đừng xóa những thứ đó bằng tay. Thay vào đó, hãy xóa mọi thùng chứa (kể cả những cái đã thoát) và những hình ảnh bạn không cần. Bạn nên làm điều này trước khi thay đổi tùy chọn -g. Sử dụng docker ps -ađể liệt kê tất cả các container (bao gồm cả những cái đã thoát) và sau đó docker rmđể loại bỏ chúng. Sử dụng docker imagesđể liệt kê tất cả các hình ảnh và sau đó docker rmiđể loại bỏ chúng. Hy vọng rằng sẽ làm sạch mọi thứ (hoặc hầu hết mọi thứ) lên.
Kal

Cảm ơn, vì vậy, xóa hình ảnh và container đã dọn sạch một số không gian. BUt hình ảnh mới hơn vẫn cần nhiều hơn. Tuy nhiên, thời gian chạy docker nên trỏ đến cái gì?, Có cách nào để tăng không gian được sử dụng bởi docker để lưu trữ hình ảnh không?
user_mda

37

Như đã đề cập,

docker system prune

giúp, nhưng với Docker 17,06.1 và sau đó mà không cắt tỉa các khối lượng không sử dụng. Kể từ Docker 17,06.1, lệnh sau cũng cắt khối lượng:

docker system prune --volumes

Từ tài liệu Docker: https://docs.docker.com/config/pruning/

Lệnh prune hệ thống docker là một phím tắt cắt tỉa hình ảnh, container và mạng. Trong Docker 17,06.0 trở về trước, khối lượng cũng được cắt tỉa. Trong Docker 17,06.1 trở lên, bạn phải chỉ định cờ --volume cho hệ thống docker cắt tỉa khối lượng.

Nếu bạn muốn cắt tỉa khối lượng và giữ hình ảnh và thùng chứa:

docker volume prune

3
docker volume pruneđã giúp tôi hôm nay khi tất cả các giải pháp khác ở đây ngừng hoạt động.
Lập trình viên

1
Trợ giúp rất lớn - ngoài việc sửa lỗi, điều này giải phóng nhiều hợp đồng không gian trên ổ cứng của tôi.
Matt Browne

29

Nếu đó chỉ là bản cài đặt thử nghiệm của Docker (nghĩa là không sản xuất) và bạn không quan tâm đến việc làm sạch hạt nhân, bạn có thể:

làm sạch tất cả các container: docker ps -a | sed '1 d' | awk '{print $1}' | xargs -L1 docker rm

làm sạch tất cả các hình ảnh: docker images -a | sed '1 d' | awk '{print $3}' | xargs -L1 docker rmi -f

Một lần nữa, tôi sử dụng điều này trong các trường hợp ec2 của mình khi phát triển Docker, không phải trong bất kỳ đường dẫn QA hoặc sản xuất nghiêm trọng nào. Điều tuyệt vời là nếu bạn có (các) Dockerfile của mình, thật dễ dàng để xây dựng lại và hoặc docker pull.


1
Trong ví dụ boot2docker của tôi, tôi đã phải gọi docker images -a | sed '1 d' | awk '{print $3}' | xargs docker rmi -f. Phiên bản OS X BSD xargshỗ trợ -Ltùy chọn, không giống như phiên bản boot2docker.
orluke

1
Bạn có thể sử dụng, docker ps -a -qv.v. để tránh các thao tác văn bản, tức là docker rm $(docker ps -a -q); docker rmi -f $(docker images -a -q)nên thực hiện thủ thuật
Niklas B.

20

để loại bỏ tất cả các container, khối lượng, mạng và hình ảnh không sử dụng cùng một lúc ( https://docs.docker.com/engine/reference/commandline/system_prune/#related-commands ):

docker system prune -a -f --volumes

nếu nó không đủ, người ta có thể loại bỏ các container đang chạy trước:

docker rm -f $(docker ps -a -q)
docker system prune -a -f --volumes

tăng / var / lib / docker hoặc sử dụng một vị trí khác có nhiều không gian hơn cũng là một cách thay thế tốt để loại bỏ lỗi này (xem Cách thay đổi thư mục cài đặt hình ảnh docker? )


docker system prunekhông loại bỏ khối lượng.
Bonifacio2

1
docker system prune -a -f --volumessẽ loại bỏ khối lượng.
Jimson Kannanthara James

19

Docker cho Mac

Vì vậy, docker system prunedocker system prune --volumesđề nghị trong câu trả lời khác giải phóng một số không gian mỗi lần, nhưng cuối cùng mỗi lần tôi chạy bất cứ thứ gì tôi đều nhận được lỗi.

Điều thực sự đã khắc phục vấn đề gốc là xóaDocker.raw tệp mà Docker cho Mac sử dụng để lưu trữ và khởi động lại nó.

Để tìm tệp đó, hãy mở Docker cho Mac và đi đến *

Preferences > Resources > Advanced > Disk Image Location

* đây là phiên bản 2.2.0.5, nhưng trên các phiên bản cũ hơn thì tương tự

Trên các phiên bản mới hơn của Docker cho Mac **, nó cho bạn thấy kích thước thực của tệp đó trên đĩa ngay trong giao diện người dùng, cũng như kích thước được phân bổ tối đa của nó. Bạn có thể sẽ thấy rằng nó là rất lớn. Ví dụ trên máy của tôi là 41GB !

** Trên các phiên bản cũ hơn, nó không hiển thị cho bạn mức sử dụng đĩa thực tế trong UI và MacOS Finder luôn hiển thị kích thước tệp dưới dạng kích thước được phân bổ tối đa. Bạn có thể kiểm tra kích thước thực trên đĩa bằng cách mở thư mục trong một thiết bị đầu cuối và chạydu -h Docker.raw

Tôi đã xóa Docker.raw, khởi động lại Docker cho Mac và tệp được tự động tạo lại và trở về 0GB .

Mọi thứ vẫn tiếp tục hoạt động như trước , mặc dù dĩ nhiên tôi đã mất bộ đệm Docker. Như mong đợi, sau khi chạy một vài lệnh Docker, tệp bắt đầu lấp đầy trở lại với một vài GB nội dung, nhưng không nơi nào gần 41 GB.


Cập nhật

Vài tháng sau, tôi Docker.rawlại đầy trở lại với kích thước tương tự. Vì vậy, phương pháp này đã làm việc, nhưng phải lặp đi lặp lại vài tháng một lần. Đối với tôi điều đó là tốt.

Một lưu ý về lý do tại sao điều này hoạt động - Tôi phải cho rằng đó là một lỗi trong Docker cho Mac. Nó thực sự có vẻ như docker system prune/ docker system prune --volumesnên hoàn toàn xóa nội dung của tệp này, nhưng có vẻ như tệp tích lũy các nội dung khác không thể bị xóa bởi các lệnh này. Dù sao, xóa nó bằng tay giải quyết vấn đề!


Mỏ là 116gb wtf ...
CW0007007

15

Docker để lại hình ảnh lơ lửng xung quanh có thể chiếm không gian của bạn. Để dọn dẹp sau Docker, hãy chạy như sau:

docker image prune [-af if you want to force remove all images]

hoặc với các phiên bản cũ hơn của Docker:

docker rm $(docker ps -q -f 'status=exited')
docker rmi $(docker images -q -f "dangling=true")

Điều này sẽ loại bỏ hình ảnh thoát và lơ lửng, hy vọng sẽ xóa không gian thiết bị.


14
  1. Làm sạch hình ảnh lơ lửng docker rmi $(docker images -f "dangling=true" -q)
  2. Loại bỏ khối lượng không mong muốn
  3. Xóa hình ảnh không sử dụng
  4. Loại bỏ các container không sử dụng

Đối với tôi, vấn đề đã có quá nhiều hình ảnh. Sau khi làm sạch chúng lên, Docker làm việc một lần nữa.
Trần Triết

9

bạn cũng có thể dùng:

docker system prune

hoặc chỉ khối lượng:

docker volume prune

7

Trong trường hợp của tôi cài đặt của ubuntu-server 18.04.1 [vì một lý do lạ] đã tạo một khối lượng hợp lý LVM chỉ với 4GBs kích thước thay vì 750GBs. Do đó, khi kéo hình ảnh tôi sẽ gặp lỗi "không còn chỗ trống trên thiết bị". Việc sửa chữa rất đơn giản:

lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

.. xem mô tả từng bước của tôi để thay đổi kích thước2fs trong chuỗi sau: stackoverflow.com/questions/32485723/ Kẻ
Alex

7

Tôi cũng gặp phải vấn đề này trên máy RHEL. Tôi không tìm thấy bất kỳ giải pháp apt nào ở bất cứ đâu trên cộng đồng stack-overflow và docker-hub. Nếu bạn đang phải đối mặt với vấn đề này ngay cả sau lệnh dưới đây:

hệ thống docker prune --all

Giải pháp cuối cùng có hiệu quả:

  1. Thông tin Docker
    • Để kiểm tra điều khiển lưu trữ Docker hiện tại
    • Của tôi là: Storage Driver: devicemapper; Nếu bạn có trình điều khiển lưu trữ như lớp phủ2 thì không có gì phải lo lắng. Giải pháp vẫn sẽ làm việc cho bạn.
  2. df -h
    • Điều này là để kiểm tra các hệ thống tệp có sẵn trên máy và đường dẫn nơi chúng được gắn kết. Hai gắn đường dẫn đến có một lưu ý:
    • / dev / mapper / rootvg-var 7.6G 1.2G 6.1G 16% / var
    • / dev / mapper / rootvg-apps 60G 9.2G 48G 17% / ứng dụng
    • Lưu ý - Theo mặc định đường dẫn lưu trữ docker là / var / lib / docker. Nó có dung lượng trống ~ 6 GB và do đó tất cả các vấn đề liên quan đến không gian. Vì vậy, về cơ bản, tôi phải di chuyển bộ nhớ mặc định sang một số bộ lưu trữ khác, nơi có nhiều không gian hơn. Đối với tôi con đường tập tin sysyem của nó '/ dev / mapper / rootvg-apps' được gắn kết vào / ứng dụng. Bây giờ nhiệm vụ là để di chuyển thư mục / var / lib / Docker một cái gì đó giống như / apps / newdocker / Docker.
  3. mkdir / ứng dụng / newdocker / docker
  4. chmod -R 777 / ứng dụng / newdocker / docker
  5. Cập nhật tệp docker.serive trên linux nằm trong: / usr / lib / systemd / system
    • vi /usr/lib/systemd/system/docker.service
  6. nếu thiết bị lưu trữ là devicemapper, hãy nhận xét dòng ExecStart hiện có và thêm bên dưới trong [Dịch vụ]:
    • ExecStart =
    • ExecStart = / usr / bin / dockerd -s devicemapper --storage-opt dm.fs = xfs --storage-opt dm.basesize = 40GB -g / apps / newdocker / Docker --exec-opt native.cgroupdriver = cgroupfs
  7. Hoặc nếu thiết bị lưu trữ là lớp phủ2:
    • chỉ cần thêm -g / apps / newdocker / docker trong câu lệnh ExexStart hiện có.
    • Một cái gì đó như ExecStart = / usr / bin / dockerd -g / apps / newdocker / Docker -H fd: // --containerd = / run / containerd / containerd.sock
  8. rm -rf / var / lib / docker (Nó sẽ xóa tất cả dữ liệu docker hiện có)
  9. systemctl dừng Docker
  10. ps phụ | grep -i docker | grep -v grep
    • Nếu không có đầu ra nào được tạo bởi lệnh trên, hãy tải lại daemon systemd bằng lệnh bên dưới.
  11. systemctl daemon-tải lại
  12. systemctl bắt đầu docker
  13. Thông tin Docker
    • Kiểm tra không gian dữ liệu có sẵn: 62,15GB sau khi chuyển sang docker sang hệ thống tệp mới.
  14. LÀM XONG

Tôi đã tìm kiếm tất cả các tài liệu về cách đạt được điều này! Cảm ơn ngài. Chúng ta có thể đánh dấu đây là một trong những câu trả lời không?
Vulegend

6

Làm sạch Docker bằng cách sử dụng lệnh sau:

docker images --no-trunc | grep '<none>' | awk '{ print $3 }' \
| xargs docker rmi

4

Nhóm của bạn có cpuset bộ điều khiển kích hoạt. Bộ điều khiển này chủ yếu hữu ích trong môi trường NUMA nơi nó cho phép chỉ định chính xác ngân hàng CPU / bộ nhớ nào mà các tác vụ của bạn được phép chạy.

Theo mặc định, bắt buộc cpuset.memscpuset.cpus không được đặt, điều đó có nghĩa là "không còn chỗ trống" cho nhiệm vụ của bạn, do đó xảy ra lỗi.

Cách dễ nhất để khắc phục điều này là bật cgroup.clone_children1 trong nhóm gốc. Trong trường hợp của bạn, nó nên được

echo 1 > /sys/fs/cgroup/docker/cgroup.clone_children

Về cơ bản, nó sẽ hướng dẫn hệ thống tự động khởi tạo container cpuset.memscpuset.cpustừ nhóm chính của chúng.


1
Đây là câu trả lời chính xác. Thực sự chỉ cần nâng cấp Docker lên bất cứ thứ gì> = Docker 1.8 sẽ giải quyết nó. Điều này có liên quan đến github.com/opencontainers/runc/issues/133 Từ vấn đề này, một vấn đề tiềm năng khác là "echo 0 > /sys/fs/cgroup/cpuset/system.slice/cpuset.mems
cpuguy83

2

Nếu bạn đang sử dụng hình ảnh boot2docker thông qua Docker Toolkit, thì vấn đề bắt nguồn từ thực tế là máy ảo boot2docker đã hết dung lượng.

Khi bạn thực hiện docker importhoặc thêm một hình ảnh mới, hình ảnh sẽ được sao chép vào /mnt/sda1đó có thể đã trở nên đầy đủ.

Một cách để kiểm tra không gian bạn có sẵn trong hình ảnh, là ssh vào vm và chạy df -hvà kiểm tra không gian còn lại trong / mnt / sda1

Lệnh ssh là docker-machine ssh default

Khi bạn chắc chắn rằng đó thực sự là vấn đề về không gian, bạn có thể dọn sạch theo hướng dẫn trong một số câu trả lời cho câu hỏi này hoặc bạn có thể chọn tự thay đổi kích thước hình ảnh boot2docker, bằng cách tăng dung lượng trên /mnt/sda1

Bạn có thể làm theo các hướng dẫn ở đây để thực hiện thay đổi kích thước hình ảnh https://gist.github.com/joost/a7cfa7b741d9d39c1307


2

Nếu bạn đang sử dụng Docker Desktop, bạn có thể tăng kích thước hình ảnh Đĩa trong Cài đặt nâng cao bằng cách đi tới Tùy chọn của Docker .

Đây là ảnh chụp màn hình từ macOS:

Docker Desktop trên macOS, Tài nguyên, Nâng cao, Kích thước hình ảnh đĩa


1

Có thể là do không gian lưu trữ mặc định được đặt thành 40GB (đường dẫn mặc định, / var / lib / docker)

bạn có thể thay đổi dung lượng lưu trữ để trỏ đến đường dẫn khác

  • chỉnh sửa tập tin -> / etc / sysconfig / docker-Storage
  • cập nhật dòng dưới đây (thêm nếu không tồn tại)

DOCKER_STORAGE_OPTIONS = '- trình điều khiển lưu trữ = lớp phủ --graph = CUSTOM_PATH'

  • Khởi động lại docker systemctl dừng docker systemctl daemon-tải lại systemctl start docker

nếu bạn chạy thông tin docker lệnh (nó sẽ hiển thị trình điều khiển lưu trữ dưới dạng lớp phủ)


0

Có vẻ như có một vài cách điều này có thể xảy ra. Vấn đề tôi gặp phải là hình ảnh đĩa docker đã đạt kích thước tối đa (Docker Whale -> Preferences -> Disk nếu bạn muốn xem kích thước đó trong OSX).

Tôi đã tăng giới hạn và tốt để đi. Tôi chắc chắn làm sạch hình ảnh không sử dụng cũng sẽ làm việc.


0

Tôi chạy các lệnh dưới đây.

Không cần phải xây dựng lại hình ảnh sau đó.

docker rm $(docker ps -qf 'status=exited')
docker rmi $(docker images -qf "dangling=true")
docker volume rm $(docker volume ls -qf dangling=true)

Những loại bỏ các thùng chứa thoát / treo lủng lẳng và khối lượng lơ lửng.


0

Đối với tôi docker system pruneđã làm các mẹo. Tôi đang chạy hệ điều hành mac.


Điều này thực sự cũng có tác dụng với tôi, khi tôi đang cố gắng dọn sạch không gian sử dụng trên Mac OS. sử dụng lệnh docker volume lskhông trả lại được gì, vì vậy có vẻ như bộ lưu trữ chủ yếu được sử dụng bởi bộ nhớ cache và hình ảnh lơ lửng.
Tuhin

-3
$ docker rm $(docker ps -aq)

Điều này làm việc cho tôi

docker system prune 

dường như là lựa chọn tốt hơn với phiên bản mới nhất

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.