[docker] 초과 비 실행 Docker 컨테이너에 대해 걱정해야합니까?
모든 docker run
명령, 또는 모든 RUN
Dockerfile 내부 명령은 컨테이너를 만듭니다. 컨테이너가 더 이상 실행되지 않으면 여전히 컨테이너를 볼 수 있습니다 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"
--size
: 총 파일 크기 표시 (FYI : “docker ps -s”의 SIZE 열과 “virtual”키워드가 # 1520을 의미하는 내용 설명 ).--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