배경
데브옵스 한다고 CI/CD 구축해놓고 Release 브랜치에 푸시 할 때 태그정보로 이미지를 만들고 그대로 컨테이너로 생성하여 특정 호스트에 배포를 하고 있었다. 개발기였기 때문에 별 문제 없이 사용했었는데 우연찮게 도커 클라이언트에 있는 컨테이너 정보를 모두 호출했다가 중지 된 수십 개의 컨테이너가 있는 걸 발견했다.
원인
컨테이너 실행 시 --rm
옵션을 안 넣었다. 아.. 컨테이너가 중지될 때 자동으로 삭제하게 만들었어야 했는데 얼마나 미련한가..
결국 이로인해 배포할 때마다 중지 된 컨테이너가 줄줄이 중지된 채 남아있었던 것이다.
해결
docker rm
명령어로 삭제를 하면 되는데 일일이 컨테이너 명 혹은 아이디를 넣어 삭제하는 건 너무나 힘들고 귀찮은 일이다. 그래서 아래 명령어로 한 번에 다 삭제했다.
1 | docker rm $(docker ps -a -f status=exited -q) |