2017-02-16 6 views
0

도커 빌드 파일/이미지에 정의 된 관리 대상 볼륨 인 의 도커 "실행"명령에서 볼륨을 바인드 마운트 할 때, 도커가 수행하는 작업은 무엇입니까?관리 대상 볼륨을 바인드 마운트하는 도커

예 : 고정 표시기 실행 -v/< my_host_dir> :

  • dockerfile는
  • 후 관리 볼륨으로/myvolume 정의/myvolume .../< 이미지>

를 내가 관리되는 볼륨이 더 이상 생성되지 않습니다. 대신 bind-mount를 통해 host-dir을 컨테이너에 마운트합니다.

무슨 일이 벌어 질까요? 이 문서는 어딘가에있을 수 있으며 그로 인해 의문의 여지가 있습니다.

+0

"관리되는 볼륨이 더 이상 만들어지지 않는다는 것이 정확히 무엇을 의미합니까?" '/ myvolume'은 컨테이너 날씨 내에 존재해야합니다. 그렇지 않으면 바인드 마운트되지 않았습니다. – Martin

답변

1

DockerfileVOLUME 문 BR의 볼커는 이미지의 사용자를하기 위해 다른 곳에서 장착하는 등의 디렉토리를 표시합니다. 예를 들어, Database-Image를 만들 때, 그 이미지의 사용자는 대개 컨테이너 외부에 날짜를 유지하려고합니다.

사용자가 (Dockerfile의 이미지/작성자로서) VOLUME이라는 디렉토리를 표시 한 경우 이미지 사용자 (docker run 또는 그와 비슷한 사람)는 아이디어가 있습니다.이 경우 사용자는 컨테이너에서 외부에서 디렉토리를 마운트하십시오.

+0

감사 마틴, 그냥 다시 확인 : 이미지의 사용자가 Docker가 볼륨을 저장하는 위치에 신경 쓰지 않으면 그는 그대로 이미지를 사용합니다. 그는 항상 "docker inspect"로 알 수 있습니다. 그러나 호스트의 특정 위치에있는 파일을 원하면 "docker run"명령에서 바인드 마운트를 지정합니다. 그렇게? – vkoster

+0

아니요. Dockerfile에'VOLUME' 문을 가지고 있어도 호스트에 전혀 영향을 미치지 않습니다. 그냥 라벨 일 뿐이야. 사용자가 start에'-v' 플래그를 제공하지 않으면 호스트에 디렉토리가 생성되지 않습니다. ('-v'는 기존 디렉토리를 마운트합니다. 또는 디렉토리를 만들고 마운트합니다.) – Martin