programing

도커 합성을 사용하여 명명된 볼륨을 제거하시겠습니까?

powerit 2023. 5. 18. 21:28
반응형

도커 합성을 사용하여 명명된 볼륨을 제거하시겠습니까?

다음과 같은 도커 합성 파일이 있는 경우:

version: "3"
services:
  postgres:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/db
volumes:
  db-data:

그때 하는docker-compose up에 대한 명명된 볼륨을 생성합니다.db-data다음을 통해 이 볼륨을 제거할 수 있는 방법이 있습니까?docker-compose만약 익명의 책이었다면,docker-compose rm -v postgres할 수 있을 겁니다하지만 지금 상태로는 어떻게 제거해야 할지 모르겠어요db-data볼륨으로 되돌리지 않고docker명령을 실행합니다.이것은 내부에서 가능해야 할 것처럼 느껴집니다.docker-composeCLI. 뭐 빠뜨린 거 있어요?

docker-compose down -v

연결된 모든 볼륨을 제거합니다.문서 참조

다음을 사용하여 특정 명명된 볼륨을 제거할 수 없습니다.docker-composecli. 대신에 이것은 다음을 사용하여 달성될 수 있습니다.dockercli. 문서를 참조하십시오.

사용하다docker volume ls특정 볼륨의 이름을 찾습니다.

다음을 사용하여 볼륨 제거docker volume rm VOLUME_NAME볼륨을 사용하여 용기를 중지하고 제거해야 합니다.

접근 방식의 예:

# Stop and remove container's using the target volume
docker-compose stop NAME_OF_CONTAINER

# We need the force flag, "-f", as the container is still bound to the volume
docker-compose rm -f NAME_OF_CONTAINER

# Next find your volume name in the following list
docker volume ls

# Finally remove the volume
docker volume rm VOLUME_NAME

2022년 1월 업데이트:

이렇게 하면 도커 합성에 정의된 모든 컨테이너, 네트워크, 볼륨이미지제거됩니다.

docker-compose down -v --rmi all

"-v"모든 볼륨에 대한 것입니다.

"--rmiall"모든 이미지에 대한 것입니다.

저도 당신과 같은 문제가 있었습니다. 다른 컨테이너가 분리된 상태로 실행되는 동안 그라파나 컨테이너의 작동 상태를 폐기하고 싶었습니다(즉, sudo docker-compose up-d).제가 생각해 낸 절차는 다음과 같습니다.

sudo docker-compose ps
sudo docker-compose stop grafana
sudo docker-compose rm --force grafana
sudo docker volume rm metricsmonitoring_grafana_data
sudo docker-compose up --force-recreate -d grafana

제거할 도커 볼륨의 이름을 결정하는 가장 좋은 방법을 (더 이상 재생하지 않고) 모르겠습니다.

이것은 도커 컴포지트 버전 1.18.0에 있습니다.

언급URL : https://stackoverflow.com/questions/45511956/remove-a-named-volume-with-docker-compose

반응형