본문 바로가기

가상 머신/Docker

[ Docker ] Container 삭제시 Volume 삭제하기

반응형

 

Docker 컨테이너를 삭제할 때 컨테이너 안에서 생성된 데이터를 모두 지우고 싶다면, 아래 사항들을 확인하고 실행하면 됩니다.


1. 볼륨을 사용하지 않았다면 (기본 상태)

docker rm -f 컨테이너이름
  • 이 경우, 컨테이너 안에서 생성된 데이터는 컨테이너 삭제와 함께 사라집니다.

2. 볼륨을 사용했다면 (예: -v, docker volume 사용 시)

컨테이너 삭제만으로는 외부 볼륨 데이터는 지워지지 않습니다.

함께 삭제하려면:

docker run --name mycontainer -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=12345678
    -e POSTGRES_DB=postgres -p 5432:5432 -v pgdata:/var/lib/postgresql/data -d postgres
# -v pgdata:/var/lib/postgresql/data 를 사용하여 container를 삭제하여도 volume는 삭제되지 않습니다.
docker rm -v 컨테이너이름
  • -v: 컨테이너에 연결된 익명 볼륨(anonymous volume) 도 함께 삭제합니다.

3. 명시적으로 생성한 named volume 이 있다면:

docker volume rm 볼륨이름

전체 사용 안 하는 볼륨 정리:

docker volume prune
  • 사용 중이지 않은 모든 볼륨 삭제

4. 컨테이너 + 이미지 + 볼륨 한꺼번에 삭제하고 싶다면:

docker rm -f 컨테이너이름
docker volume rm $(docker volume ls -q)
docker rmi 이미지이름

또는 한 줄로 모든 걸 정리:

docker system prune -a --volumes
  • -a: 안 쓰는 이미지도 삭제
  • --volumes: 사용 안 하는 볼륨도 삭제
    이 명령은 컨테이너, 이미지, 네트워크, 사용되지 않는 모든 볼륨한 번에 삭제하므로 주의하세요.

 

반응형