programing

도커 컨테이너가 과도하게 작동하지 않는 것에 대해 우려해야 합니까?

codeshow 2023. 10. 24. 21:38
반응형

도커 컨테이너가 과도하게 작동하지 않는 것에 대해 우려해야 합니까?

모든docker run명령, 또는 모든RUNDocker 파일 안에 있는 명령을 실행하여 컨테이너를 만듭니다.컨테이너가 더 이상 실행되지 않는 경우에도 다음과 같이 볼 수 있습니다.docker ps -a.

실행되지 않는 수많은 컨테이너 목록을 가지고 있는 것에 대해 걱정해야 합니까?발행해야 하나요?docker rm실행되지 않는 컨테이너에서?

실행되지 않는 이러한 컨테이너가 어떤 성능이나 메모리/스토리지에 영향을 미치는지 확실하지 않습니다.

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

보통은 뒷정리를 하는 것이 좋지만, 주변에 청소하는 사람들이 많다면 성능이 전혀 저하되지 않아야 합니다.

정지된 컨테이너가 많은 도커 명령을 실행할 때 속도가 느려지는 것을 발견하면 도커의 버그일 수 있으므로 버그를 제출해야 합니다.

설명서에서는 컨테이너가 나갈 때 자동으로 컨테이너를 정리하고 파일 시스템을 제거하는 방법에 대해 설명합니다.

  --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

볼륨이 있는 컨테이너를 실행하고 도커 rm -v를 사용하여 제거하지 않으면 컨테이너를 제거한 후에도 볼륨이 제거되지 않습니다.vfs 스토리지 드라이버에도 문제가 있습니다.정리하는 것을 잊어버리면 볼륨이 디스크 공간을 다 써버립니다.

실행되지 않는 이러한 컨테이너가 어떤 성능이나 메모리/스토리지에 영향을 미치는지 확실하지 않습니다.

실행되지 않는 도커 컨테이너의 스토리지 사용량을 평가하기 위해 다음을 실행할 수 있습니다.

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

와 동일하게 다음을 실행할 수 있습니다.docker container ls --filter "status=exited"

명령어(Docker 1.13.0, 2017년 1월 도입)를 사용하여 도커 디스크 사용량을 확인할 수도 있습니다.

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

이미지는 파일 시스템 및 종속성의 스냅샷 또는 특정 응용프로그램/소프트웨어의 특정 디렉토리 집합입니다.스냅샷이란, 컨테이너 환경에서 기본 구성으로 소프트웨어(예: mysql, redis 등)를 실행하는 데 필요한 파일의 복사본을 의미합니다.

이미지를 사용하여 컨테이너를 생성하면 네임스페이스cgroups의 도움으로 시스템에서 리소스의 작은 부분이 분리된 다음 이미지 내부의 파일이 이 고립된 리소스 환경에서 복사됩니다.

따라서 컨테이너는 디스크 공간만 차지합니다.사용하지 않는 용기가 있을 경우 제거해야 하지만 항상 재사용이 가능하기 때문에 이미지를 제거해서는 안됩니다.

언급URL : https://stackoverflow.com/questions/17014263/should-i-be-concerned-about-excess-non-running-docker-containers

반응형