2017-11-20 3 views

답변

2

Docker 볼륨에는 바인드 마운트와 관리의 두 가지 종류가 있습니다. 바인드 마운트는 런타임에 수행되며, 소스 디렉토리에 관해 이야기 할 때 생각할 것입니다. 그것은 다음과 같습니다이 실행중인 컨테이너에 /app에 호스트 컴퓨터에서 mydir 디렉토리를 마운트 할

docker run -v mydir:/app someimage

.

관리되는 볼륨에는 원본 디렉터리가 없으므로 컨테이너 공간에만 있습니다. 컨테이너가 일시적이기 때문에 일반적으로 컨테이너 실행간에 데이터를 보존하는 데 사용됩니다.

일반적으로 패키지를 npm install, pip install 또는 개발을 위해 다른 패키지 관리자에서 보존하는 경우가 있습니다. 컨테이너를 실행할 때마다 100 개의 패키지를 다시 다운로드하고 싶지는 않습니다. 대신에, 나는 실행 사이를 유지하기 위해 볼륨을 사용할 수 있습니다

docker run -v myvol:/app/node_modules someimage

나는이 컨테이너를 시작하고이 같은 myvol 마운트 다음 번에, myvol 이미 /app/node_modules의 마지막에서 설치된 모든 패키지를 가지고 있으므로 npm은 업데이트를 신속하게 검색하고 함께 이동합니다.

또한 Dockerized 데이터베이스를 실행하는 역할의 관리되는 볼륨을 고려하십시오. 이 게시물을 확인하십시오, 그것은 아주 좋은 답변을 가지고 있습니다 : How to deal with persistent storage (e.g. databases) in docker

+0

'-v'는 도커 웜에서 작동합니까? 나는 시도했지만 작동하지 않습니다. – Luke101

+0

내가 모르는 사이에, 나는 Docker Swarm을 사용하지 않았습니다. Kubernetes와 AWS ECS는 모두 볼륨을 지원하므로 Swarm도 마찬가지입니다. – bluescores

관련 문제