#docker-compose #top-level #volume
docker compose에서 volume들을 분리해서 따로 정의하고 이것들을 각 service에서 가져다가 사용하는 것을 top-level volume 이라고 한다.
services:
backend:
image: example/database
volumes:
- db-data:/etc/data
backup:
image: backup-service
volumes:
- db-data:/var/lib/backup/data
volumes:
db-data:
docker compose up 했을 때 db-data가 없으면 생성하고 그렇지 않으면 있는 것이 사용된다.
Attributes
driver
volumes:
db-data:
driver: foobar
driver_opts
volumes:
example:
driver_opts:
type: "nfs"
o: "addr=10.40.0.199,nolock,soft,rw"
device: ":/docker/example"
external
services:
backend:
image: example/database
volumes:
- db-data:/etc/data
volumes:
db-data:
external: true
- 볼륨이 외부에서 관리됨을 의미한다. 만약 볼륨이 존재하지 않으면 오류가 난다.
labels
- 볼륨의 메타데이터를 추가한다.
volumes:
db-data:
labels:
com.example.description: "Database volume"
com.example.department: "IT/Ops"
com.example.label-with-empty-value: ""
name
- yaml 키로 지정할 수 없는 이름을 사용하고자할 때 사용할 수 있다.
volumes:
db-data:
name: "my-app-data"
참고자료
'Instructions' 카테고리의 다른 글
| MacOS X 맥에서 독(Dock)에 통통 튀는 것 비활성화 (2) | 2023.12.04 |
|---|---|
| Python import `잘 하는` 방법 (1) | 2023.12.01 |
| 시놀로지 SSL Certificates Path (1) | 2023.12.01 |
| Docker + Nginx + Flask + Gunicorn + Mysql로 웹 서비스 개발하기 (1) | 2023.11.30 |
| CouchDB 설치 with docker compose (0) | 2023.11.29 |