아래 예제는 volume이라는 dbdata를 만들고 db 서비스 내에서 참조합니다 .
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
( https://stackoverflow.com/a/35675553/4291814에서 )
볼륨의 기본 경로는 다음과 같습니다.
/var/lib/docker/volumes/<project_name>_dbdata
내 질문은 dbdata
볼륨 에 대한 호스트의 경로를 구성하는 방법입니다 .
답변
으로 local
볼륨 드라이버 임의의 마운트를 사용할 수있는 기능을 제공; 바인드 마운트 를 사용하면 정확히이 작업을 수행 할 수 있습니다.
에 장착됩니다 명명 된 볼륨을 설정하려면 /srv/db-data
, 당신은 docker-compose.yml
다음과 같을 것이다 :
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/srv/db-data'
compose 파일 형식의 버전 2로 테스트 하지는 않았지만 https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 는 작동하지 않아야 함을 나타내지 않습니다.
Windows에서도 테스트하지 않았습니다 …
답변
명명 된 볼륨의 위치는 docker에 의해 관리됩니다. 위치를 직접 지정하려는 경우 호스트 디렉토리를 “바인드 마운트”하거나 경로를 지정할 수있는 볼륨 플러그인을 사용할 수 있습니다.
최근에 게시 한 다른 답변에서 몇 가지 세부 사항을 찾을 수 있습니다. https://stackoverflow.com/a/36321403/1811501
답변
현재 docker-compose v3.2
다음과 같이 지금 그것을 할 수 있습니다 :
참고 : version: "3"
최신 / 최신 V3를 사용할 것이라고 생각했듯이 많은 경우를 사용하지 않으므로 아래 구성 방법을 사용하려면 v3.0
최소한 지정해야 3.2
합니다.
https://docs.docker.com/compose/compose-file/#volumes
version: "3.2"
services:
db:
image: postgres:latest
volumes:
- type: volume
source: /opt/db/vols/dbdata
target: /var/lib/postgresql/data
volume:
nocopy: true
volumes:
dbdata:
노트 :
이름이 지정된 볼륨은 그림과 같이 최상위 볼륨 키 아래에 나열되어야합니다.