2017-01-25 4 views
0

도커를 배우고 도커 허브에서 일부 샘플 이미지를 배포하고 있습니다. 그들 중 하나는 postgresql이 필요합니다. 볼륨을 지정하지 않고 배포하는 경우 볼륨이 아름답게 작동합니다. 볼륨을 '호스트의 경로'로 지정하면 fsync를 제대로 수행 할 수 없으므로 실패합니다. 내 질문은 볼륨을 검사 할 때, 도커가 해당 볼륨을 저장하는 위치를 찾을 수 없습니다. 필요한 경우 볼륨을 지정하여 데이터를 이동할 수 있도록하고 싶습니다. Docker는 이것을 Windows 컴퓨터에 어디에 저장합니까? Kinematic을 통해 볼륨을 활성화하려고 시도했지만 컨테이너를 사용할 수 없게되었습니다.Windows 용 도커 볼륨 정보

> docker volume inspect 0622ff3e0de10e2159fa4fe6b7cd7407c6149067f138b72380a5bbe337df8f62 
[ 
    { 
     "Driver": "local", 
     "Labels": null, 
     "Mountpoint": "/var/lib/docker/volumes/0622ff3e0de10e2159fa4fe6b7cd7407c6149067f138b72380a5bbe337df8f62/_data", 
     "Name": "0622ff3e0de10e2159fa4fe6b7cd7407c6149067f138b72380a5bbe337df8f62", 
     "Options": {}, 
     "Scope": "local" 
    } 
] 

도커를 통해 볼륨을 만들 수 있지만 하드 디스크에 저장되는 위치를 알 수는 없습니다.

답변

1

Windows 10에서 Docker를 사용하는 경우 docker는 VM을 만들고 로컬 Hyper-V에서 실행합니다. 생성 한 볼륨은 MobyLinuxVM이라는 이름으로 저장된이 VM 내부에 있습니다. .vhdx (도커의 설정에서 확인할 수 있음).

호스트 컴퓨터에 데이터를 저장하는 한 가지 방법은 도커 설정에서 드라이브를 공유 한 다음 postgres 데이터 폴더를 Windows 하드 드라이브에 매핑하는 것입니다. 비슷한 것 docker run -it -v /c/mypgdata:/var/lib/postgresql/data postgres

또 다른 방법은 특정 드라이버로 볼륨을 만드는 것입니다. 원하는대로 할 수있는 경우 기존 볼륨 드라이버를 살펴보십시오. 이 하나가 당신을 위해 관심이있을 수 : https://github.com/CWSpear/local-persist

또한

#get a privileged container with access to Docker daemon 
docker run --privileged -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker alpine sh 

#run a container with full root access to MobyLinuxVM and no seccomp profile (so you can mount stuff) 
docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh 

#switch to host FS 
chroot /host 

#and then go to the volume you asked for 
cd /var/lib/docker/volumes/0622ff3e0de10e2159fa4fe6b7cd7407c6149067f138b72380a5bbe337df8f62/_data 

여기에서 찾을 해킹이 "종류"로 MobyLinux VM을 입력 할 수 있습니다 정보 주셔서 http://docker-saigon.github.io/post/Docker-Beta/

+0

감사합니다, 나는이었다 그 대답을 찾기 위해 힘을 썼다. 나는 리눅스 이미지가 볼륨을 갖고 있다고 의심했다. 슬프게도 local-persist에는 Windows 다운로드가 없습니다. 아니면 하나를 만드는 방법을 이해하지 못합니다. – Rouche

관련 문제