docker container rm
docker container rm
docker container rm은 하나 이상의 컨테이너를 제거하는 명령이에요. 더 이상 쓰지 않는 컨테이너를 정리하고 싶을 때 써요.
출처: 문서
본문
하나 이상의 컨테이너를 제거해요.
사용법 (Usage)
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
별칭 (Aliases)
별칭은 긴 명령 대신 쓸 수 있는 짧고 기억하기 쉬운 대안이에요.
docker container remove, docker rm
옵션 (Options)
| 옵션 | 기본값 | 설명 |
|---|---|---|
-f, --force |
실행 중인 컨테이너를 강제로 제거해요 (SIGKILL 사용) | |
-l, --link |
지정한 링크를 제거해요 | |
-v, --volumes |
컨테이너에 연결된 익명 볼륨을 제거해요 |
예제 (Examples)
컨테이너 제거하기
이 명령은 /redis 링크 아래 참조된 컨테이너를 제거해요.
$ docker rm /redis
/redis
기본 bridge 네트워크에서 --link로 지정한 링크 제거하기 (--link)
이 명령은 기본 bridge 네트워크에서 /webapp과 /redis 컨테이너 사이의 기본 링크를 제거해서, 두 컨테이너 사이의 모든 네트워크 통신을 끊어요. 이는 --link를 사용자가 지정한 네트워크와 함께 쓸 때는 적용되지 않아요.
$ docker rm --link /webapp/redis
/webapp/redis
실행 중인 컨테이너 강제 제거하기 (--force)
이 명령은 실행 중인 컨테이너를 강제로 제거해요.
$ docker rm --force redis
redis
redis 링크 아래 참조된 컨테이너 안의 메인 프로세스는 SIGKILL을 받은 뒤 컨테이너가 제거돼요.
정지된 컨테이너 모두 제거하기
정지된 컨테이너를 모두 제거하려면 docker container prune 명령을 쓰거나, 사용하지 않는 컨테이너 외에 이미지·네트워크 같은 다른 Docker 리소스도 함께 제거하려면 docker system prune 명령을 참고해요.
또는 docker ps를 -q/--quiet 옵션과 함께 써서 제거할 컨테이너 ID 목록을 만든 다음, 그 목록을 docker rm 명령의 인자로 쓸 수도 있어요.
명령을 조합하는 건 더 유연하지만, 쉘이 제공하는 기능에 의존하고 사용하는 쉘에 따라 정확한 구문이 달라질 수 있어서 이식성이 떨어져요. Windows에서 이 방식을 쓰려면 PowerShell이나 Bash를 고려해요.
아래 예제는 docker ps -q를 써서 종료된(--filter status=exited) 모든 컨테이너의 ID를 출력하고, docker rm 명령으로 그 컨테이너들을 제거해요.
$ docker rm $(docker ps --filter status=exited -q)
또는 xargs Linux 유틸리티를 쓸 수도 있어요.
$ docker ps --filter status=exited -q | xargs docker rm
컨테이너와 그 볼륨 제거하기 (-v, --volumes)
$ docker rm --volumes redis
redis
이 명령은 컨테이너와 그에 연결된 볼륨을 제거해요. 이름이 지정된 볼륨은 제거되지 않는다는 점에 주의해요.
컨테이너를 제거하고 볼륨을 선택적으로 제거하기
$ docker create -v awesome:/foo -v /bar --name hello redis
hello
$ docker rm -v hello
이 예제에서 /foo의 볼륨은 그대로 유지되지만 /bar의 볼륨은 제거돼요. --volumes-from으로 상속된 볼륨도 같은 동작을 해요.