[docker] 초과 비 실행 Docker 컨테이너에 대해 걱정해야합니까?

모든 docker run명령, 또는 모든 RUNDockerfile 내부 명령은 컨테이너를 만듭니다. 컨테이너가 더 이상 실행되지 않으면 여전히 컨테이너를 볼 수 있습니다 docker ps -a.

실행 중이 아닌 컨테이너 목록이 많이 필요합니까? docker rm비 실행 컨테이너에서 발행해야합니까 ?

이 비 실행 컨테이너가 어떤 성능 또는 메모리 / 스토리지 처벌을 받는지 확실하지 않습니다.



답변

실행 중이 아닌 컨테이너는 디스크 공간 외에 시스템 리소스를 사용하지 않습니다.

일반적으로 자신을 정리하는 것이 좋지만 주위에 많은 것들이 있으면 성능이 느려지지 않아야합니다.

컨테이너가 많이 중지 된 docker 명령을 실행할 때 속도가 느려지는 경우 docker의 버그 일 수 있으므로 버그를 제출해야합니다.


답변

docker run문서 는 컨테이너가 종료 될 때 컨테이너를 자동으로 정리하고 파일 시스템을 제거하는 방법을 설명합니다.

  --rm=false: Automatically remove the container when it exits (incompatible with -d)

위의 내용은 기본적으로 컨테이너가 제거되지는 않지만 단식 추가 --rm=true또는 단축 --rm은 다음과 같이 작동 함을 보여줍니다 .

sudo docker run -i -t --rm ubuntu /bin/bash

컨테이너를 종료하면 컨테이너가 자동으로 제거됩니다.

하나의 터미널 창에 도커 컨테이너를 나열하여이를 테스트 할 수 있습니다.

watch -n1 'sudo ls -c /var/lib/docker/containers'

그런 다음 다른 창에서이 명령을 실행하여 최대 10 초 동안 휴면 후 자동으로 종료되는 여러 도커 컨테이너를 실행하십시오.

for i in {1..10}; do sudo docker run --rm ubuntu /bin/sleep $i & done


답변

볼륨이있는 컨테이너를 실행하고 docker rm -v 를 사용 하여 제거하지 않으면 컨테이너를 제거한 후에 볼륨이 제거되지 않습니다. 또한 vfs 저장소 드라이버에 문제 가 있습니다. 정리를 잊어 버리면 볼륨이 디스크 공간을 차지합니다.


답변

이 비 실행 컨테이너가 어떤 성능 또는 메모리 / 스토리지 처벌을 받는지 확실하지 않습니다.

비 실행 Docker 컨테이너가 사용중인 스토리지 양을 평가하기 위해 다음을 실행할 수 있습니다.

docker ps --size --filter "status=exited"

마찬가지로 다음을 실행할 수 있습니다.docker container ls --filter "status=exited"

다음 명령을 사용하여 docker system df도커 디스크 사용량을 확인할 수도 있습니다 (예 : 2017 년 1 월 Docker 1.13.0에서 도입).

username@server:~$ docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              44                  28                  114.7GB             84.84GB (73%)
Containers          86                  7                   62.43GB             41.67GB (66%)
Local Volumes       2                   1                   0B                  0B
Build Cache                                                 0B                  0B


답변