1. Named Volume (이름 붙은 볼륨)
volumes:
- wp_content:/var/www/html
wp_content라는 이름만 지정하고, 실제로 호스트 어디에 저장되는지는 Docker가 알아서 관리해요- 실제 저장 위치:
/var/lib/docker/volumes/<프로젝트명>_wp_content/_data(앞서 확인하셨던 그 경로) - 이 경로는 Docker가 자동으로 만들고 관리하는 영역이라, 사람이 직접 신경 안 써도 됨
- 문제점: 이름이
<프로젝트명>_wp_content형태로 만들어지기 때문에, 프로젝트 이름이 바뀌면 Docker가 “다른 볼륨”으로 인식해버림 (지금까지 얘기했던 그 문제)
2. Bind Mount (경로 직접 지정)
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf:ro
- /etc/letsencrypt:/etc/letsencrypt:ro
- 호스트의 실제 파일 경로를 콜론(
:) 앞에 직접 써서, 그 경로를 컨테이너 안에 그대로 연결 - Docker가 별도로 이름 붙이거나 관리 안 함 — 그냥 “이 폴더를 저 폴더에 연결해줘”
- 프로젝트 이름과 전혀 무관 — 경로 자체가 고정값이라 이름이 뭘로 바뀌든 항상 같은 파일을 봄
비유로 설명하면
- Named volume: 이삿짐센터(Docker)에 “내 짐 보관 좀 해줘, 이름은 ‘박스1’이라고 붙일게” 하고 맡기는 것 → 보관 창고 안 어디에 있는지는 이삿짐센터가 알아서 관리, 나는 이름만 기억하면 됨
- Bind mount: “내 짐은 우리 집 거실 서랍장에 그냥 놔둘게” 하고 직접 위치를 지정하는 것 → 위치가 고정이라 누가 뭐라 부르든 상관없이 항상 그 자리에 있음
언제 뭘 쓰냐면
| Named Volume | Bind Mount | |
|---|---|---|
| 장점 | Docker가 알아서 관리, 백업 도구 호환 잘됨 | 호스트에서 직접 파일 수정하기 편함 |