2017-03-15 5 views
0

내 프로젝트 중 하나에서 도커 작성 중입니다. 개발 중에는 쉽게 개발할 수 있도록 내 소스 디렉토리를 도커 서비스의 볼륨에 마운트합니다. 동시에 영구 데이터 저장을 위해 명명 된 볼륨을 마운트하는 db 서비스 (psql)가 있습니다.도커가 장착 된 볼륨이 남아 있음

나는 솔루션에 의해 시작하고 내가 명명하고 "이름"(소스 볼륨)를 참조하십시오 나의 볼륨을 검사 할 때 다 잘

$ docker-compose up -d 

노력하고 있습니다.

$ docker volume ls 
DRIVER    VOLUME NAME 
local    226ba7af9689c511cb5e6c06ceb36e6c26a75dd9d619360882a1012cdcd25b72 
local    myproject_data 

문제의 I 경험

내가 두 볼륨이 남아

$ docker-compose down 
... 
$ docker volume ls 
DRIVER    VOLUME NAME 
local    226ba7af9689c511cb5e6c06ceb36e6c26a75dd9d619360882a1012cdcd25b72 
local    myproject_data 

을 수행 할 때, 점이다. 내가 실행할 때마다

새 볼륨이 내 소스 생성됩니다
$ docker-compose down 
$ docker-compose up -d 

나는 그것이 소스를 탑재되지 않습니다 때문에이 내 배포 서버에 일어나지 않을 것이라는 점을 알고있다

$ docker volume ls 
DRIVER    VOLUME NAME 
local    19181286b19c0c3f5b67d7d1f0e3f237c83317816acbdf4223328fdf46046518 
local    226ba7af9689c511cb5e6c06ceb36e6c26a75dd9d619360882a1012cdcd25b72 
local    myproject_data 

를 탑재하지만,이 마운트 된 소스를 영구적으로 만들지 않는 방법?

답변

0

도커 실행시 --rm 옵션을 사용할 수 있습니다. 당신이 Data volumes, 대한 문서를 통해 갈 경우 docker-compose stop

으로 컨테이너를 중지 한 후

docker-compose rm -v을 사용할 수 있습니다 docker-compose와 함께 사용하기 위해

데이터 볼륨이 용기 자체가 경우에도 계속 언급 한 삭제됨

즉, 컨테이너를 중지해도 명명 된 이름이나 익명이 아닌 만든 볼륨이 제거되지 않습니다.

이제 컨테이너가 삭제 한 후 Removing volumes

도커 데이터 볼륨이 계속 아래로 더 읽으면. 명명 된 또는 익명 볼륨을 만들 수 있습니다. 명명 된 볼륨에는 컨테이너 외부에 특정 소스 양식이 있습니다 (예 : awesome :/bar). 익명 볼륨에 특정 소스가 없습니다. 컨테이너가 삭제되면 은 Docker Engine 데몬에 익명의 볼륨을 정리하도록 지시해야합니다. 이렇게하려면, 예를 들어, --rm 옵션을 사용

$ docker run --rm -v /foo -v awesome:/bar busybox top 

이 명령은 익명/foo는 볼륨을 생성합니다. 컨테이너가 이면 Docker 엔진은/foo 볼륨을 제거하지만 멋진 볼륨은 제거하지 않습니다.

+0

응답 해 주셔서 감사합니다. 이것은 다소 효과가있었습니다 만,'docker-compose down'을 호출 한 후에'docker-compose rm -v'를 호출하면'Contained No Containers '가됩니다. 나는'docker-compose stop'과'docker-compose rm -v'를 거쳐야 익명의 볼륨을 제거해야합니다. 제 생각에 가장 좋은 방법입니다. 그러나'docker-compose down'에서 플래그를 사용하면 좋을 것입니다. 명명 된 볼륨의'--volumes' 플래그와 유사합니다. –