programing

도커 기계:장치에 남아 있는 공간이 없습니다.

sourcejob 2023. 8. 12. 10:15
반응형

도커 기계:장치에 남아 있는 공간이 없습니다.

도커 컴포지트로 도커 머신을 설정하려고 합니다.

시나리오 1(도커 시스템 미포함)
가 가내뛰면을 하면,docker-compose up -dDocker Machine을 사용하지 않으면 링크된 3개의 컨테이너가 의도한 대로 생성됩니다(nginx+mongodb+nodejs).

시나리오 2(도커 시스템 포함)
에게 "Docker Machine"을 사용하여 .eval $(docker-machine env streambacker-dev).

시점에서 내 하고 이시를에컴도터퓨면연실결하행고하점을 됩니다.df -h이해합니다.

docker machine df -h

가 내가뛰면을 하면,docker-compose up -d마지막 컨테이너를 다운로드하는 동안 "장치에 남은 공간이 없습니다" 오류가 발생합니다.

"tmpfs"는 그 이후에 실제로 약간 꽉 찬 것 같습니다.

docker machine df -h

--virtualbox-disk-size 옵션을 선택하면 기본값이 20000MB로 표시되며, 두 사진 모두에서 "/dev/sda1"로 표시됩니다.그렇다면 왜 컨테이너는 "tmpfs" n을 채우고 "tmpfs"는 정확히 무엇입니까?임시 다운로드 디렉토리입니까?컨테이너 공간을 늘리려면 어떻게 해야 합니까?

감사합니다!

참고로 저는 도커 머신 0.4.0-rc2와 도커 컴포지 1.3.2사용하고 있습니다.

저도 같은 오류가 있었습니다.[ERROR] InnoDB: Error number 28 means 'No space left on device')을 사용하여 다음과 같이 해결합니다.

1. 도커에서 고립된 볼륨을 삭제합니다. 내장 도커 볼륨 명령을 사용할 수 있습니다.또한 내장 명령어는 볼륨이 아닌 /var/lib/docker/volumes의 모든 디렉토리를 삭제하므로 저장할 디렉토리가 없는지 확인합니다.

경고 보관할 데이터가 있는 경우 매우 주의하십시오.

정리:

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

추가 명령:

매달린 볼륨 나열:

$ docker volume ls -qf dangling=true

모든 볼륨 나열:

$ docker volume ls

2. 또한 사용하지 않는 모든 이미지를 제거하는 것도 고려해야 합니다.

먼저 그것을 제거합니다.<none>이미지(이미지를 빌드하는 동안 생성되는 경우가 있으며 어떤 이유로든 이미지 빌드가 중단된 경우 해당 이미지는 그대로 유지됩니다.)

여기 그것들을 제거하는 데 사용하는 멋진 스크립트가 있습니다.

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

그런 다음 도커 합성을 사용하여 모든 프로젝트에 대한 이미지를 로컬로 빌드하는 경우.와 같은 을 가진 이미지들을 될 입니다. (를 들어,이 Hello인 , 이름은 "Hello"입니다.)Hello_blablabla 이미지도 하는 것이 . 따라서 이 모든 이미지를 제거하는 것도 고려해 보십시오.

위 스크립트를 편집하여 제거하거나 수동으로 제거할 수 있습니다.

docker rmi {image-name}

처럼, 위서말했이듯에,이말,tmpfs와무한와는 아무 .--virtualbox-disk-size mounts 인 것 .tmpfs가상 상자 VM에 더 많은 메모리를 할당해야 합니다.다음을 지정하여 수행할 수 있습니다.--virtualbox-memory 명령어

   --virtualbox-memory "1024"
Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE]

기본값:

$ docker-machine create --driver virtualbox testA
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
$ docker-machine ssh testA
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
docker@testA:~$ df -h /
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   896.6M    112.7M    783.9M  13% /

와 함께--virtualbox-memory로 설정한.8096

$ docker-machine create --driver virtualbox --virtualbox-memory 8096 testB
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
$ docker-machine ssh testB
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
docker@testB:~$ df -h /
Filesystem                Size      Used Available Use% Mounted on
tmpfs                     6.9G    112.4M      6.8G   2% /

Docker Community Edition을 사용하는 경우:

 docker system prune --volumes  

boot2docker(도커 시스템)를 사용하는 경우 분리된 볼륨을 지웁니다.

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

사용되지 않은 이미지 지우기:

 docker rmi $(docker images -q -f "dangling=true")

A. 사용하지 않는 이미지 제거

dockerrm 또는 dockerrmi 명령을 사용하여 필요 없는 이미지를 제거할 수 있습니다.실제로 이 작업에 도움이 되는 이미지가 존재합니다(마틴/도커 정리 볼륨).기본적으로 영상 및 용기 목록에서 선택을 시작합니다.

도커 ps-a-s

B. 도커 JSON 설명자 수정

그것은 몇몇 포럼에서 언급되었습니다.이 방법은 ~/.docker/machine/machine/default/config.json에 있는 설명자를 증분하는 것입니다.매개 변수가 DiskSize인 것처럼 보이지만 다른 OS(윈도우가 아님)에서 작동하는지는 모르겠습니다.

C. LINUX 크기 조정:

윈도우즈 OS에서 도커 시스템 또는 boot2docker는 사실상 가상 상자 VM입니다. 그러면 절차에 따라 디스크 크기를 조정할 수 있습니다.파일 백업에 주의하십시오.일반적인 절차는 가상 상자에서 크기를 조정한 다음 gpartd라는 유틸리티를 사용하여 파티션에서 Linux가 인식하는 공간을 수정하는 것입니다.이 절차를 수행하기 위한 몇 가지 링크는 다음과 같습니다.

D. 도커 재작성 - 기계 / 부트2 도커

이 아이디어는 기본 도커 기계를 다시 만드는 것입니다.다음 명령을 사용하여 설명할 수 있습니다.boot2도커를 다시 만드는 동안 이전에 다운로드한 도커 이미지가 손실됩니다.

도커-machine rm 기본값

도커 시스템 생성 --driver virtualbox --virtualbox-disk-size "100100" 기본값

도커 시스템 환경 기본값

그런 다음 가상 상자로 이동하여 "df -h" 명령을 사용하여 boot2x 공간을 확인할 수 있습니다.

려달을 합니다.docker system df도커의 공간을 차지하고 있는 것을 확인하기 위해

그런 다음 실행:

docker system prune --all --force

숨김 및 사용하지 않는 모든 용기를 제거합니다.

docker system prune사용하지 않는 모든 컨테이너를 제거하지 않습니다.

Docker osx에서 / [디스크 이미지 이동] 버튼을 누를 수 있었고 Docker.qcow2(컨테이너/이미지가 포함된 것으로 추정됨)를 성공적으로 이동했습니다.

enter image description here 처음에 - 기계가 시작되었을 때 - 장치에 남은 공간 없음 오류가 발생했지만 얼마 지나지 않아 해결되었습니다.

이 문제가 발생하여 Mac용 도커 UI로 공간을 추가할 수 없습니다. 홈브루로 도커를 설치하고 기계를 만들 때 다음 명령을 실행했습니다.

docker-machine create --driver virtualbox --virtualbox-memory "2048" --virtualbox-disk-size "40000" default

이것은 이전에 가지고 있던 가상 상자에 메모리 및 디스크 크기를 위한 공간을 두 배 추가합니다. 그리고 여기에 필요한 설정 크기를 원하는 대로 추가할 수 있습니다.

열다.file /lib/systemd/system/docker.service가장 좋아하는 텍스트 편집기로 다음 행을 대체합니다./new/path/docker는 새로 선택한 도커 디렉터리의 위치입니다.

FROM:
ExecStart=/usr/bin/docker daemon -H fd://
TO:
ExecStart=/usr/bin/docker daemon -g /new/path/docker -H fd://

준비가 되면 도커 서비스 중지:

# systemctl stop docker

도커 서비스가 중지되었는지 확인합니다. 다음 명령을 실행해도 결과가 나타나지 않습니다.

# ps aux | grep -i docker | grep -v grep

다시 로드 데몬

# systemctl daemon-reload

이 작업이 완료되면 위에서 지정한 새 디렉토리를 만듭니다.rsync현재 도커 데이터를 새 디렉터리로:

# mkdir /new/path/docker
# rsync -aqxP /var/lib/docker/ /new/path/docker

# systemctl start docker

도커가 새 디렉터리로 실행됨을 확인합니다.

#  ps aux | grep -i docker | grep -v grep

https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux

언급URL : https://stackoverflow.com/questions/31909979/docker-machine-no-space-left-on-device

반응형