-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
docker volume 이름 관련 질문입니다
23.11.02 21:57 작성 조회수 219
0
나만의 웹서비스 + 워드프레스 서비스 만들기2 강의의 4분 30초 경을 보면, docker volume ls 수행 결과로 뜨는 volume name이 07_wordpress_complete_mydb 로 되어 있습니다. (/var/lib/docker/volumes 경로에서도 해당 이름임을 확인했습니다)
그런데 mysql 컨테이너에 대한 docker volume의 이름을 docker-compose.yml 에서 지정할 때는 mydb:/var/lib/mysql 로 했습니다. yml파일 내용만 보면, volume 이름이 그냥 mydb 인 것으로 생각됩니다.
07_wordpress_complete는 해당 yml 파일이 위치한 폴더의 이름일 텐데요,
혹시 yml 파일에서 지정한 volume명 앞에 자동으로 yml 파일이 위치한 폴더명이 붙어서 volume 이름이 생성되는 것인가요?
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
나만의 웹서비스 + 워드프레스 서비스 만들기2
강의실 바로가기
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2023.11.03
안녕하세요. 답변 도우미입니다.
네, 맞습니다. Docker에서 docker-compose
를 사용할 때, 볼륨 이름이나 컨테이너 이름 등에 프로젝트 이름이 자동으로 접두사로 붙는 경우가 흔합니다. 기본적으로 docker-compose
는 현재 디렉토리의 이름을 프로젝트 이름으로 사용하는데, 이것이 볼륨 이름에 반영되기도 합니다.
예를 들어, 07_wordpress_complete
디렉토리에서 docker-compose up
을 실행하면, mydb
라는 이름을 가진 볼륨이 실제로는 07_wordpress_complete_mydb
로 생성됩니다. 이렇게 되는 이유는 동일한 docker-compose.yml
파일 구성을 사용하더라도 다른 프로젝트(혹은 다른 디렉토리) 간의 충돌을 방지하기 위해서입니다.
docker-compose.yml
파일에서 직접 볼륨 이름을 지정할 때, 다음과 같이 설정하게 됩니다:
services:
db:
image: mysql
volumes:
- mydb:/var/lib/mysql
volumes:
mydb:
여기서 mydb
는 도커 컴포즈가 관리하는 볼륨의 이름으로, 실제 볼륨의 전체 이름은 프로젝트명_mydb
형태가 됩니다. 만약 프로젝트 이름을 디렉토리 이름이 아닌 다른 것으로 설정하고 싶다면, docker-compose -p <프로젝트 이름>
옵션을 사용하여 실행할 수 있습니다.
감사합니다.
답변 1