이전 부두노동자 컨테이너입니다 제거하는 방법

이 질문은 관련됨 * https://stackoverflow.com/questions/17014263/should-i-be-concerned-about-excess-non-running-docker-containers

39 m, 이전 컨테이너입니다 i& 제거하는 방법을 묻고 싶다. 이 '한' 나는 이미 많이 있지만, rm 3e552code34a 부두노동자 제거할 수 있습니다. rm - 도움말에서는 부두 노동자 ',' t give a # 39 doesn& 선택 옵션 (, 또는 다른 모든 이미지별 이름).

아마 내가 어디 저장되어 있는 디렉터리입니다 쉽게 삭제할 수 있습니다 다음 컨테이너입니다 수동으로로?

질문에 대한 의견 (8)
해결책

이후 [부두노동자 1.13.x] [1] 부두노동자 컨테이너입니다 정리 사용할 수 있습니다.

docker container prune

이렇게 하면 모든 플랫폼에서 동일한 방식으로 모두 분리하십시오 중지함 컨테이너입니다 및 노력해야 합니다.

또한 부두노동자 시스템 정리:

docker system prune

이 모든 비사용률 클린업합니다 컨테이너입니다, 네트워크, 이미지 (모두 허상 및 비참조), 그리고 경우에 따라, 볼륨, 한 함장님이요

기존의 구체화하십시오 부두노동자 명령의세 부두노동자 버전, 서로 다른 유닉스 명령어 afaq 너희는너희가 할 수 있습니다. 이전 컨테이너입니다 생후 않는비즈니스 클린업합니다 방법에 대한 예를 들어보겠습니다.

$ docker ps --filter "status=exited" | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm

이 경우, 인해 (https://twitter.com/jpetazzo/status/347431091415703552.) 에서 비유하사 전달자로써 크레딧보다

[1]: https://github.com/moby/moby/blob/master/CHANGELOG.md # 1130 18-01-2017

해설 (21)

나는 attaboy 있는 다른 방법을 통해 기욤 J. 샤름 (어디에 크레딧보다 때문에):

docker rm `docker ps --no-trunc -aq`

모두 분리하십시오 컨테이너입니다 우아한 운행에서어떠한 있는 것이다.

바르토시 빌리츠키 통해 Windows 용:

FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i

대한 PowerShell:

docker rm @(docker ps -aq)

함께 업데이트하려면 부두노동자 1.13 (Q4 2016년), credit 을 폰스 (후반부에서 스레드할).

  • '정리' * 가 부두노동자 삭제하시겠습니까 비사용률 데이터 시스템 (즉, (clarification): 컨테이너입니다 중지함, 볼륨 및 이미지 없이 컨테이너입니다 없이 컨테이너입니다).

참조 PR 26108커밋합니다 86de7c0, 즉 소개합니까 촉진하기 위해 새로운 명령을 몇 배를 부두 노동자 데몬입니다 공간의 크기를 디스크에 데이터를 쉽게 지우는중 &quot 수 있으며, unneeded&quot 하고 있다. 초과.

docker system prune

WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
해설 (20)
  • 업데이트되도록 오토메이티드 * '지금' 정리 '또는' 컨테이너 부두 노동자 시스템을 사용하여 부두노동자 정리. 참조 [VonC& # 39 의 업데이트되도록 오토메이티드] [1].

  • 이전 오토메이티드 * 위의 여러 가지 힌트) 을 구성하는 모든 비 실행 컨테이너입니다 제거하는 방법을 가장 우아한 것으로 보인다.

'부두 노동자 rm $ (부두노동자 ps - q - f 상태 = 이)'

  • '그냥' 인쇄 q 컨테이너입니다 id (헤더도 없이 열)
  • '-f' 목록에 컨테이너입니다 인쇄했습니다 필터링하려면 있습니다 (이 경우 우리는 필터링부터 컨테이너입니다 보이기 위해 이)

[1]: # 39860665 https://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers/39860665

해설 (7)

공식 운행에서어떠한 입니다.

docker rm `docker ps -aq`

이 부두노동자 및 유지 관리 업체를 없을 것 같은 명령은 명령 엔드입니다 - 주셨습니다 작성하면 다음과 같이 밝혔다:

&gt. 이 선 위에서 논의한 전에 사용자 추가 코드를 부두노동자 및 포지셔닝하십시오 필요 없이 사용할 수 있습니다.

해설 (4)

함께 부두노동자 1.13 (Q4 2016년), 이제.

'-' 부두 노동자 한 시스템 정리 에서 삭제하시겠습니까 비사용률 데이터 (즉, (clarification): 컨테이너입니다 중지함, 볼륨 및 이미지 없이 컨테이너입니다 없이 컨테이너입니다).

(이미지) 만 제거하면 시스템 정리 '-' 부두 노동자 한 없이 허상 이미지 또는 이미지 태그 없이, 이를 [언급한] [2] 에서 스마일버기.

참조 PR 26108커밋합니다 86de7c0, 즉 소개합니까 촉진하기 위해 새로운 명령을 몇 배를 부두 노동자 데몬입니다 공간의 크기를 디스크에 데이터를 쉽게 지우는중 &quot 수 있으며, unneeded&quot 하고 있다. 초과.

docker system prune -a

WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y

이를 [우제프], 6 의견

&gt. 또한 '컨테이너 부두 노동자, 이미지, 볼륨, 네트워크}, {정리' 사용할 수 있는 단 하나의 지루려면 비사용률 인스턴스들도 개체 유형.

7, [커밋합니다 913e5cb] 에서 소개된 부두노동자 대해서만 1.13+.

docker container prune

[2]: # comment89860875_39860665 노르드리치 https://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers/39860665? = 1

해설 (8)

이제 [필터링부터] [1] 사용할 수 있는 '부두 노동자 ps':

docker rm $(docker ps -q -f status=exited)

[그림] 과 [2]:

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

그러나 모든 부두 노동자 '또는' '그' 복사할지 부두노동자 rmi 오류가 생길 수 없을 때 일치하는 따돌리기 위해 개발되었다. $ (부두노동자 ps - aq) 는 기존 부두 노동자 '트릭' 복사할지 더욱 악화시키고 있는 그대로 실행할 때마다 분리하십시오 컨테이너입니다 불신하니 했습니다.

39 의 here& 클리너 스크립트입니다 '~ ~ /.profile 에 추가 /.bashrc' 또는 '':

# Use `docker-cleanup --dry-run` to see what would be deleted.

function docker-cleanup {
  EXITED=$(docker ps -q -f status=exited)
  DANGLING=$(docker images -q -f "dangling=true")

  if [ "$1" == "--dry-run" ]; then
    echo "==> Would stop containers:"
    echo $EXITED
    echo "==> And images:"
    echo $DANGLING
  else
    if [ -n "$EXITED" ]; then
      docker rm $EXITED
    else
      echo "No containers to remove."
    fi
    if [ -n "$DANGLING" ]; then
      docker rmi $DANGLING
    else
      echo "No images to remove."
    fi
  fi
}
  • 편집: 이미지가 아닌) 는 다음과 같이, 원래 오토메이티드 제거하기 위해 개발되었다. 새로운 링크를 포함하여 모두 답변을 업데이트되도록 붽뎄. 덕분에 에이드리언이요 (및 Ryan& # 39 의 오토메이티드) 을 거론하며 filtering.* ps '새'

[1]: http://docs.docker.com/reference/commandline/ps/ # 필터링부터 [2]: http://docs.docker.com/reference/commandline/images/ # 필터링부터

해설 (2)
        • 2019년 업데이트되도록 (최신)
docker container prune
  • 이 방법은 2017년 (세) -
    • 모든 중지함 컨테이너입니다 지루려면
docker rm $(docker ps -a -q)
        • 모든 컨테이너입니다 지루려면 (중지함 및 비사양 중지함)
docker rm  -f $(docker ps -a -q)
해설 (2)

모두 분리하십시오 중지함 컨테이너입니다:

docker rm $(docker ps -a | grep Exited | awk '{print $1}')

[Pauk960] 에서 의해 주석문입니다 (https://stackoverflow.com/users/2113724/pauk960):

&gt. Ps '대신' 와 '부두 노동자 필터링합니다 1.3.0 이후 버전을 사용할 수 있습니다' - 'a - f' 이 ps 부두노동자 그렙 사용하여 상태 = 종료되었습니다. 이 회사는 이를 통해 얻을 수 있습니다 '만' q 사용할 경우 전체 출력입니다 대신 사용할 필요가 없고, 컨테이너입니다 침입탐지시스템 (ids) 에 있다.

해설 (0)

마음에 들지 않는 경우, 모든 컨테이너입니다 지루려면 컨테이너입니다 이전 또는 이후에 작성된 특정 컨테이너입니다 모두 선택할 수 있습니다 '-' 또는 '부두 노동자, ps, ps 와 함께 부두노동자 &lt 전에 container-ID&gt &lt container-ID&gt' 이후. -; 이 기능은 부두노동자 버전이 0.6.5 http://support. 도입했다.

39 let&; s say you 가 개발한 시스템이 작동하고, 현재는 여러 컨테이너입니다 수축됐는데 떠나버렸소 이전에 생성된 컨테이너입니다 제거할 수 있는 작업 버전. 컨테이너 부두 노동자 '와' ID 를 사항결정 apc® ps.

    • 또 다른 컨테이너입니다 컨테이너입니다 제거하시겠습니까 이전에 생성된
docker rm $(docker ps --before 9c49c11c8d21 -q)

또 다른 예를 들어. 데이터베이스 이미 실행되고 있는 컨테이너 부두 노동자 한 있습니다. 당신은 이제 다른 응용 프로그램을 실행할 수 있는 개발했습니까 컨테이너입니다 불필요한 컨테이너입니다 많이 있습니다.

  • 제거 후 생성된 컨테이너입니다 특정 컨테이너입니다 *
docker rm $(docker ps --since a6ca4661ec7f -q)

/ Var / lib / / 컨테이너 부두 노동자 '에서' 는 컨테이너 부두 노동자 unbuntu 의. 추가 컨테이너입니다 해 다른 디스크 공간을 취할 수밖에 없다 생각한다.

해설 (0)
  • Update:* vmware. 부두노동자 1.13 버전 (릴리즈됨 1월 2017년), 다음 명령을 내릴 수 있습니다, 비사용률 볼륨과의 클린업합니다 중지함 컨테이너입니다 허상, 이미지 및 비사용률 네트워크:
docker system prune

39 만 스케쳐내 you& 하고 있기 때문에, '상태' 이 있는 삭제에서 컨테이너입니다 사용.

docker ps -aq -f status=exited | xargs docker rm

마찬가지로, 만약 you& # 39, re 지우는중 부두노동자, 이런 식으로 물건을 태그 없는 이름 없는 이미지를 없앨 수 있습니다.

docker images -q --no-trunc -f dangling=true | xargs docker rmi
해설 (0)

다음은 '내' 부두 노동자 정리 스크립트입니다 절감뿐만 컨테이너입니다 있는 untagged (태그 및 이미지. 이 업데이트는 dbasyb 소스임을.

#!/bin/sh
# Cleanup docker files: untagged containers and images.
#
# Use `docker-cleanup -n` for a dry run to see what would be deleted.

untagged_containers() {
  # Print containers using untagged images: $1 is used with awk's print: 0=line, 1=column 1.
  docker ps -a | awk '$2 ~ "[0-9a-f]{12}" {print $'$1'}'
}

untagged_images() {
  # Print untagged images: $1 is used with awk's print: 0=line, 3=column 3.
  # NOTE: intermediate images (via -a) seem to only cause
  # "Error: Conflict, foobarid wasn't deleted" messages.
  # Might be useful sometimes when Docker messed things up?!
  # docker images -a | awk '$1 == "" {print $'$1'}'
  docker images | tail -n +2 | awk '$1 == "" {print $'$1'}'
}

# Dry-run.
if [ "$1" = "-n" ]; then
  echo "=== Containers with uncommitted images: ==="
  untagged_containers 0
  echo

  echo "=== Uncommitted images: ==="
  untagged_images 0

  exit
fi

# Remove containers with untagged images.
echo "Removing containers:" >&2
untagged_containers 1 | xargs --no-run-if-empty docker rm --volumes=true

# Remove untagged images
echo "Removing images:" >&2
untagged_images 3 | xargs --no-run-if-empty docker rmi

출처: https://github.com/blueyed/dotfiles/blob/master/usr/bin/docker-cleanup

해설 (2)

첫째, 실행 중지 컨테이너입니다 분리하기 전에 그들을

호스팅하면서 제거하시겠습니까 컨테이너입니다

docker rm $(docker stop -t=1 $(docker ps -q))

'' 대신 '' 정지점을 죽일거라고 사용할 수 있습니다. 저의 경우는 내가 선호하는 경향이 있다 '' 정지점을 하도 그래서 그 때마다 한 수 아래로 움켜쥐고하나님을 재실행할 아니하시더라 vs. 새로 만드는 시도하시겠습니까 아주 잘.

  • Note:* 것을 막으려 하고 컨테이너입니다 부여하느뇨 오류가 있습니다.

&gt. 오류: 첫 실행 불가능한 지루려면 컨테이너인 말해보란

모두 분리하십시오 컨테이너입니다

docker rm $(docker ps -a -q)
해설 (0)

Windows 에서 모두 제거하면 컨테이너입니다 쉘로:

FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i
해설 (2)

https://github.com/HardySimpson/docker-cleanup

부두노동자 정리

이 작은 일체형 쉘로 절감뿐만:

  • 컨테이너입니다 실행하는 것은 하루 이상 전
  • 이미지 don& 속해 있는 나머지 컨테이너입니다 t # 39.

Crontab 으로 작업을 실행할 수 있는 것이 특징이다

기능이

  • It 는 ',' 이미지를 모두 분리하십시오 &lt none&gt :&lt none>;;
  • 이미지 여럿인 경우, 이를 통해 제외하고는 모두 분리하십시오 리포: 태그 태그 참조입니다 리포: 컨테이너입니다 실행하는 것입니다. 실제로 컴포지션이 특성상 부두노동자 rmi&quot ";).
  • 많은 오류 메시지가 화면에 표시 될 수 있습니다 / dev / nulll 2&gt 결정한 ',' 방관하겠나
  • 이 문제를 해결할 수 있으며, 뭔가 배울 게 부두 노동자 gc (다중 이미지 제거하시겠습니까 리포 태그번호 수 없다는 것을 알 수 있다.)
해설 (0)

사용:

docker rm -f $(docker ps -a -q)

이 모든 컨테이너입니다 제거하고 강제로 정지점으로 χ02 로칼에서.

해설 (4)
  • 모두 분리하십시오 중지함 containers.*

$ sudo 부두노동자 &gt, rm (sudo 부두노동자 ps - - q)

이렇게 하면 모두 분리하십시오 중지함 컨테이너입니다 부두노동자 ps - a - q 와 함께 모든 컨테이너입니다 제거하더라도 바뀌엇어요 반군지역 부두노동자, 정보기술 (it) 이 자신의 id 를 실행하는 것이 너희에게 알려 분리하십시오 복구 안 컨테이너입니다 실행 중인 이미지를 제거할 수 없습니다.

    • 태그 없는 이미지를 모두 분리하십시오

이제 정리할 일부 공간은 기존 이미지를 저장할 수 있습니다.

$ sudo 부두노동자 &gt, rmi (sudo 부두노동자 true&quot 허상 = q - &quot 필터링합니다 이미지 -;;)

해설 (3)

그래서 내가 이렇게 직접 추천합니까 일부로 스크립트입니다 이미지와 컨테이너입니다 대한 가장 최근의 ᄂ씨 컨테이너입니다 계속 배포할 수 만 및 이미지. 난 내 이미지 태그 태그 '를 사용하고 있는 깃 (git)' 와 같은 버전 관리 부두 노동자 스키마에는 아니라 항상 최신 부두노동자 이미지와 함께 &quot 태깅에 latest."; 즉, 바람, 내 이미지를 클린업합니다 아무것도 없이 지우는중 부두노동자 보았으매 다음과 같습니다.

REPOSITORY              TAG       IMAGE ID        CREATED         VIRTUAL SIZE
some_repo/some_image    0.0.5     8f1a7c7ba93c    23 hours ago    925.4 MB
some_repo/some_image    latest    8f1a7c7ba93c    23 hours ago    925.4 MB
some_repo/some_image    0.0.4     0beabfa514ea    45 hours ago    925.4 MB
some_repo/some_image    0.0.3     54302cd10bf2    6 days ago      978.5 MB
some_repo/some_image    0.0.2     0078b30f3d9a    7 days ago      978.5 MB
some_repo/some_image    0.0.1     sdfgdf0f3d9a    8 days ago      938.5 MB

근데 나 don& # 39, 이제, 모든 (또는 컨테이너입니다) 에서 계속 돌아가고 싶지 않다 내 이미지 영속 내 모든 운영 내려왔습니다. 난 그냥 마지막 3 또는 4 의 롤백 및 없앨 것을 할 수가 없어요. # 39 는 '꼬리' s your best friend 목마르겠구나 unix&. 이후 '부두 노동자' 와 '이미지' 꼬리 '부두 노동자 모두 사용할 수 있고, 그냥 날짜별로 주문하십시오 ps' 톱 3 를 모두이지만 및 제거합니다.

docker rmi $(docker images -q | tail -n +4)

실행하십시오 함께 배포할 수 있는 스크립트 (또는 로칼에서) 를 차지하지 않고 그냥 편하게 렉시한테서 이미지를 항상 충분한 공간 또는 물건을 채우는 최대 롤백합니다 너무 오래된 이미지.

개인적으로 1 만 렉시한테서 컨테이너입니다 on my 운영본 기입란 언제든지 할 수 있는 것 같은 종류의 확장하지만 컨테이너입니다 스케쳐내 보다.

docker rm $(docker ps -aq | tail -n +4)

결국 내 간편화된 we& # 39 만 한 번에 처리할 수 있지만, 예를 들어, re 리포지토리를 했을 경우, 더, 좀 더 정교한 수 있습니다 어서 와 동일한 것. 난 그냥 계속 말하도다 지난 3 이미지로 some_repo/some_image. 그냥 내가 할 수 있는 '와' on my way) '과' 그렙 함께 할 수 있다.

docker rmi $(docker images -a | grep 'some_repo/some_image' | awk '{print $3}' | tail -n +4)

같은 생각을 할 수 있지만, 이 점에 의해 다시 qic 컨테이너입니다 이해했소 그러하매 I&, ll 정지점을 확증하노라 # 39 를 정의할 수 있다.

해설 (0)
  1. 모두 분리하십시오 부두노동자 프로세스:

rm 부두노동자 $ (부두노동자 ps - - q)

  1. 특정 제거하시겠습니까 컨테이너입니다:

ps - $ 부두노동자 ᄀ군 (사용된 모든 열거합니다 컨테이너입니다)

rm 컨테이너입니다 id 부두노동자 $

해설 (0)

가장 오래된 컨테이너입니다 제거하시겠습니까 5:

docker rm `docker ps -aq | tail -n 5`

지켜보리니 가부키쇼 컨테이너입니다 좁히어 남아 있다.

docker ps -aq | wc -l
해설 (1)
  • 새로운 way:* spotify/docker-gc 하는 트릭.
 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc spotify/docker-gc
  • 그 전에 이 컨테이너입니다 한시간 이상 제거됩니다. 그 후, t # 39 - 이미지 don& 속해 있는 나머지 컨테이너입니다 재거됨

이 회사는 환경 설정을 지원합니다.

  • 가진 이미지를 내세워 삭제를 여러 태그를 *
 FORCE_IMAGE_REMOVAL=1
    • 컨테이너입니다 강제 삭제
 FORCE_CONTAINER_REMOVAL=1 
    • 컨테이너입니다 제외) 에서 최근 쓰레기 수집 및 이미지 종료되었습니다.
 GRACE_PERIOD_SECONDS=86400

또한 이 설정은 제거 할 수 있는 이미지의 생성되었습니까 미만임 GRACE_PERIOD_SECONDS 초 전.

  • Dry run) *
 DRY_RUN=1
  • 지우는중 고립된 컨테이너입니다 볼륨입니다 * CLEAN_UP_VOLUMES = 1

참조: 부두 노동자 gc

  • Do:* 이전 방법

, 비 실행 삭제하시겠습니까 컨테이너입니다 이전

 docker ps -a -q -f status=exited | xargs --no-run-if-empty docker rm
             OR 
 docker rm $(docker ps -a -q)
  • 비 실행 관련된 모든 이미지와 삭제하시겠습니까 부두노동자 컨테이너입니다 *
 docker images -q | xargs --no-run-if-empty docker rmi
  • 지우는중 고립된 부두노동자 볼륨과의 부두노동자 위한 버전 1.10.x 잔인하니 *
 docker volume ls -qf dangling=true | xargs -r docker volume rm
  • 시간을 기준으로 기간 *
 docker ps -a | grep "weeks ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
 docker ps -a | grep "days ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
 docker ps -a | grep "hours ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
해설 (1)