docker volume rm 명령을 사용하여 볼륨 삭제하는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker volume rm 명령어를 사용하여 Docker 볼륨을 관리하는 방법을 배우게 됩니다. 먼저 볼륨을 생성한 다음 삭제하는 연습을 할 것입니다.

또한, 컨테이너에서 사용 중인 볼륨을 삭제하려고 시도하는 시나리오를 탐구하여 기본 동작과 현재 실행 중인 컨테이너에 연결된 볼륨을 강제로 삭제하는 방법을 이해할 것입니다.

볼륨 생성

이 단계에서는 Docker 볼륨을 생성하는 방법을 배우게 됩니다. 볼륨은 Docker 컨테이너에서 생성되고 사용되는 데이터를 영구적으로 저장하는 데 선호되는 방법입니다. 바인드 마운트 (bind mount) 는 호스트 머신의 디렉토리 구조에 의존하는 반면, 볼륨은 Docker 에 의해 완전히 관리됩니다.

볼륨을 생성하려면 docker volume create 명령어를 사용하고 볼륨에 지정할 이름을 입력합니다. myvolume이라는 볼륨을 생성해 보겠습니다.

docker volume create myvolume

생성이 성공하면 콘솔에 볼륨 이름이 출력됩니다.

이제 docker volume ls 명령어를 사용하여 사용 가능한 모든 볼륨을 나열하여 볼륨이 생성되었는지 확인해 보겠습니다.

docker volume ls

출력에 myvolume이 표시되어야 합니다.

볼륨 삭제 시도

이 단계에서는 이전 단계에서 생성한 볼륨을 삭제하려고 시도합니다. Docker 볼륨을 삭제하려면 docker volume rm 명령어를 사용하고 볼륨 이름을 입력합니다.

myvolume 볼륨을 삭제해 보겠습니다.

docker volume rm myvolume

삭제가 성공하면 콘솔에 볼륨 이름이 출력됩니다.

이제 사용 가능한 모든 볼륨을 다시 나열하여 볼륨이 삭제되었는지 확인해 보겠습니다.

docker volume ls

출력에 더 이상 myvolume이 표시되지 않아야 합니다.

볼륨 삭제

이전 단계에서 볼륨을 삭제하려고 시도했습니다. 이제 실제로 삭제되었는지 확인해 보겠습니다. 동일한 명령어 docker volume rm을 사용하고 볼륨 이름을 입력합니다.

docker volume rm myvolume

이전 단계에서 볼륨이 성공적으로 삭제되었다면, 볼륨을 찾을 수 없다는 오류가 표시될 수 있습니다. 이는 예상되는 결과이며, 볼륨이 삭제되었음을 확인합니다. 이전 단계에서 볼륨이 삭제되지 않았다면, 이 명령어가 지금 삭제합니다.

볼륨이 삭제되었는지 확인하려면 볼륨을 다시 나열합니다.

docker volume ls

myvolume이 목록에 나타나지 않아야 합니다.

볼륨 생성 및 컨테이너 연결

이 단계에서는 새 볼륨을 생성한 다음, 이 볼륨을 사용하여 데이터를 유지하는 Docker 컨테이너를 생성합니다.

먼저, mydata라는 새 볼륨을 생성해 보겠습니다.

docker volume create mydata

다음으로, 간단한 ubuntu 컨테이너를 실행하고 mydata 볼륨을 컨테이너 내부의 /app 디렉토리에 마운트합니다. 또한 마운트된 볼륨 내의 파일에 텍스트를 쓰는 명령을 실행합니다.

컨테이너를 실행하기 전에, ubuntu 이미지를 풀링하여 로컬에서 사용할 수 있도록 합니다.

docker pull ubuntu

이제 컨테이너를 실행하고 볼륨에 씁니다.

docker run -d --name mycontainer -v mydata:/app ubuntu bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null"

이 명령을 자세히 살펴보겠습니다.

  • docker run: 새 컨테이너를 실행하는 명령어입니다.
  • -d: 컨테이너를 분리 모드 (백그라운드) 로 실행합니다.
  • --name mycontainer: 컨테이너에 mycontainer라는 이름을 할당합니다.
  • -v mydata:/app: 이것은 볼륨 마운트입니다. mydata라는 Docker 볼륨을 컨테이너 내부의 /app 디렉토리에 마운트합니다.
  • ubuntu: 사용할 Docker 이미지입니다.
  • bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null": 컨테이너 내부에서 실행할 명령어입니다. "Hello from the volume!"을 /app 디렉토리 (마운트된 볼륨) 에 있는 greeting.txt라는 파일에 쓰고, tail -f /dev/null을 실행하여 컨테이너가 계속 실행되도록 합니다.

컨테이너가 실행 중이고 볼륨이 연결되었는지 확인하려면 컨테이너를 검사할 수 있습니다.

docker inspect mycontainer

출력에서 "Mounts" 섹션을 찾습니다. /app에 마운트된 mydata 볼륨에 대한 항목이 표시되어야 합니다.

사용 중인 볼륨 삭제 시도

이 단계에서는 mycontainer 컨테이너에서 여전히 사용 중인 mydata 볼륨을 삭제하려고 시도합니다. 이는 실행 중인 컨테이너에 활성으로 마운트된 볼륨을 삭제하려고 할 때 발생하는 상황을 보여줍니다.

docker volume rm 명령을 사용하여 mydata 볼륨을 삭제해 보십시오.

docker volume rm mydata

볼륨이 사용 중이므로 삭제할 수 없다는 오류 메시지가 표시되어야 합니다. 이는 예상되는 동작입니다. Docker 는 데이터 손실 또는 예기치 않은 동작을 방지하기 위해 현재 실행 중인 컨테이너에 연결된 볼륨을 삭제하는 것을 방지합니다.

볼륨이 삭제되지 않았는지 확인하려면 볼륨을 다시 나열합니다.

docker volume ls

출력에서 여전히 mydata를 볼 수 있어야 합니다.

강제적으로 사용 중인 볼륨 삭제

이전 단계에서 실행 중인 컨테이너에서 현재 사용 중인 볼륨은 삭제할 수 없다는 것을 배웠습니다. 그러나 사용 중인 볼륨을 삭제해야 하는 상황이 있을 수 있습니다. Docker 는 docker volume rm 명령과 함께 -f 또는 --force 플래그를 사용하여 볼륨을 강제로 삭제하는 방법을 제공합니다.

참고: 사용 중인 볼륨을 강제로 삭제하면 해당 볼륨을 사용하는 컨테이너에 데이터 손실 및 예기치 않은 동작이 발생할 수 있습니다. 이 옵션은 주의해서 사용하십시오.

mycontainer가 여전히 실행 중인 동안 mydata 볼륨을 강제로 삭제해 보겠습니다.

docker volume rm -f mydata

콘솔에 볼륨 이름이 출력되어 삭제되었음을 나타냅니다.

이제 볼륨을 나열하여 볼륨이 삭제되었는지 확인해 보겠습니다.

docker volume ls

mydata 볼륨이 더 이상 목록에 없어야 합니다.

mycontainer의 상태도 확인할 수 있습니다.

docker ps

mycontainer는 여전히 실행 중인 컨테이너 목록에 나타날 수 있지만, 볼륨이 삭제되었기 때문에 상태가 좋지 않거나 예기치 않게 중지될 수 있습니다.

마지막으로, 정리하기 위해 컨테이너를 중지하고 제거합니다.

docker stop mycontainer
docker rm mycontainer

요약

이 랩에서는 docker volume 명령을 사용하여 Docker 볼륨을 관리하는 방법을 배웠습니다. docker volume create를 사용하여 myvolume이라는 볼륨을 생성하는 것으로 시작하여 docker volume ls로 해당 볼륨의 존재를 확인했습니다. 그런 다음 docker volume rm을 사용하여 볼륨을 삭제하는 연습을 했고, 볼륨을 다시 나열하여 삭제를 확인했습니다.

또한 컨테이너에서 볼륨을 사용 중일 때 docker volume rm의 동작을 살펴보았습니다. 볼륨과 이를 사용하는 컨테이너를 생성하고, 볼륨을 직접 삭제하려고 시도하면 실패하는 것을 관찰했습니다. 마지막으로, docker volume rm 명령에 -f 플래그를 추가하여 사용 중인 볼륨을 강제로 삭제하는 방법을 배웠습니다.